本文介绍了不显示结果的SQL参数化查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经按照我的DataAcess类的功能,但它没有显示任何结果。结果
我的code是如下:
I have following function in my DataAcess class, but it is not showing any result.
My code is as follow:
public List<Products> GetProduct(string productName)
{
System.Data.DataSet ds = null;
db = DBWrapper.GetSqlClientWrapper();
db.ClearParameters();
db.AddParameter(db.MakeInParam("@ProductName", DbType.String, 30, productName));
string query = @"SELECT ProductId
FROM [Products]
WHERE Name LIKE '%@ProductName%'";
ds = db.GetDataSet(query);
db.ClearParameters();
// Rest of Code
}
我也试过:
string query = @"SELECT ProductId
FROM [Products]
WHERE Name LIKE '%"+"@ProductName"+"%'";
但它没有设定参数运行的罚款:
But it runs fine without parameterized like:
string query = @"SELECT ProductId
FROM [Products]
WHERE Name LIKE '%"+productName+"%'";
如何使用与参数写的 @ProductName ???
推荐答案
您应该使用
LIKE '%' + @ProductName + '%'
而不是
LIKE '%@ProductName%'
为什么呢?因为在查询时,你的参数是引号内。在报价,SQL将其识别为和从不将其视为一个参数
作为一种替代方法,您可以使用 %%
在 AddParameter
方法的一部分
的的 的
As an alternative, you can use your % %
part in your AddParameter
method asDamien_The_Unbeliever mentioned.
这篇关于不显示结果的SQL参数化查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!