我在互联网上四处寻找答案,但是还没有运气。我以为这是我的简单错误,但无法确定我的生活。
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);
一切正常。两种情况都不会引发任何错误,这使我很困惑。似乎带有查询的参数混合在一起。
在两种情况下,查询均相同地执行。
任何帮助或经验将不胜感激。谢谢您的时间!
答案 0 :(得分:5)
CustomerInvoice='@custInvSel';";
需要成为
CustomerInvoice=@custInvSel";
参数化时,无需在字符串等中添加引号。您只需发送原始数据即可。并且不要添加分号。