查询在 SQL 中工作正常,但在代码中无法正常工作
本文关键字:工作 常工作 SQL 查询 代码 | 更新日期: 2023-09-27 17:56:33
>我有一个简单的查询,通过替换旧数据并更新要添加到前一个列ProductQuantity
来更新ProductPrice
列。
我用SQL编写了查询,它工作正常,但是在VS代码中,它连接了ProductQuantity
。就像如果我有20
的产品数量,那么在此之后结果应该是20 + 50 = 70
但是在代码中执行查询后,它将值更新为2050
SQL 中的查询是:
UPDATE ProductLog
SET ProductQuantity = ProductQuantity + 50,
ProductPrice = 20
WHERE ProductCode = 1
我的 C# 代码中的查询是:
sql = "";
sql += "UPDATE ProductLog
SET ProductQuantity = ProductQuantity
+ '"
+ productQuantity
+ "', ProductPrice = '"
+ productPrice
+ "' WHERE ProductCode = '"
+ ProductCode
+ "'";
我无法在代码查询中找到我的错误。请在这方面指导我。
表中列的数据类型为 varchar
。
杰克,
这是因为当您通过字符串串联手动生成查询时,它不会将数值相加。 它将通过它们各自的 .ToString() 方法,获取结果,并将结果连接到字符串中。 根据执行此查询的方式(ADO.NET、Linq2SQL 或实体框架),最好使用这些技术中的机制来更新值,而不是手动创建这些字符串。 如果要继续这样做,则必须检索"ProductQuantity"的值,将该值添加到 50(或所需的任何值),然后在执行查询之前执行串联。