参数化SQL查询不返回数据;非参数查询返回正确的值

时间:2018-10-26 13:26:55

标签: c# sql

我在互联网上四处寻找答案,但是还没有运气。我以为这是我的简单错误,但无法确定我的生活。

var queryString1 = "SELECT * FROM Product_Table WHERE CustomerInvoice='@custInvSel';";
        SqlCommand comm1 = new SqlCommand(queryString1, conn);
        comm1.Parameters.AddWithValue("@custInvSel", customerInvoiceSelected);

尽管存在数据,但是上面的代码基本上不会返回任何数据。当代码显示为

var queryString1 = "SELECT * FROM Product_Table WHERE CustomerInvoice='"+customerInvoiceSelected+"';";
        SqlCommand comm1 = new SqlCommand(queryString1, conn);

一切正常。两种情况都不会引发任何错误,这使我很困惑。似乎带有查询的参数混合在一起。

在两种情况下,查询均相同地执行。

任何帮助或经验将不胜感激。谢谢您的时间!

1 个答案:

答案 0 :(得分:5)

CustomerInvoice='@custInvSel';";

需要成为

CustomerInvoice=@custInvSel";

参数化时,无需在字符串等中添加引号。您只需发送原始数据即可。并且不要添加分号。