查询在 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

查询在 SQL 中工作正常,但在代码中无法正常工作

杰克,

这是因为当您通过字符串串联手动生成查询时,它不会将数值相加。 它将通过它们各自的 .ToString() 方法,获取结果,并将结果连接到字符串中。 根据执行此查询的方式(ADO.NET、Linq2SQL 或实体框架),最好使用这些技术中的机制来更新值,而不是手动创建这些字符串。 如果要继续这样做,则必须检索"ProductQuantity"的值,将该值添加到 50(或所需的任何值),然后在执行查询之前执行串联。