首页 > 解决方案 > 参数化 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);

一切正常。在这两种情况下都不会抛出任何错误,这让我很困惑。看起来查询混淆了所有参数。

查询在两种情况下都以相同的方式执行。

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

标签: c#sql

解决方案


CustomerInvoice='@custInvSel';";

需要

CustomerInvoice=@custInvSel";

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


推荐阅读