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);
一切正常。在这两种情况下都不会抛出任何错误,这让我很困惑。看起来查询混淆了所有参数。
查询在两种情况下都以相同的方式执行。
任何帮助或经验将不胜感激。感谢您的时间!
解决方案
CustomerInvoice='@custInvSel';";
需要
CustomerInvoice=@custInvSel";
当您参数化时,您不会在字符串中添加引号等。您只需发送原始数据。并且不要添加分号。
推荐阅读
- javascript - 屏幕上出现多个弹出器时重叠
- amazon-web-services - 使用 NAT 实例为私有 Ec2 实例提供 Internet 访问
- php - LARAVEL FFMpeg:无法保存帧错误
- javascript - 如何使用本机存储代替本地存储?
- python - 如何使用 python 将 Microsoft Doc 转换为 PDF 文件
- javascript - 在 ReactJS 功能组件中实现 Lodash 的去抖动
- javascript - 如何通过 p5js 中的 URL 从 JSON 文件加载数据?
- javascript - Chartjs:使一些刻度(周日,周六)变红
- swift - 守卫让我们发现零
- python - 如何将纸浆决策变量的输出打印成矩阵格式