gpt4 book ai didi

c# - SQL 参数化查询不显示结果

转载 作者:行者123 更新时间:2023-11-30 13:37:48 28 4
gpt4 key购买 nike

我的 DataAccess 类中有以下函数,但它没有显示任何结果。
我的代码如下:

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"+"%'";

但它在没有参数化的情况下运行良好:

string query = @"SELECT ProductId  
FROM [Products]
WHERE Name LIKE '%"+productName+"%'";

如何使用 @ProductName 参数化来写这个???

最佳答案

你应该使用

LIKE '%' + @ProductName + '%'

代替

LIKE '%@ProductName%'

为什么?因为在查询中,您的参数在引号内。在引号中,SQL 会将其识别为 string literal并且从不将其视为参数。

作为替代方案,您可以在 AddParameter 方法中使用 % % 部分作为 Damien_The_Unbeliever mentioned .

关于c# - SQL 参数化查询不显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20652170/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com