更新库存数量保持前一个数量

时间:2017-07-26 06:44:33

标签: c# mysql

我在使用库存更新数据库时遇到问题。我想将库存添加到库存中可用的先前库存,但是错误说在WHERE之前检查您的mysql语法。这是我的疑问。

"UPDATE tblproducts SET Quantity=Quantity+'"+txtAddQty.Text+"' WHERE ProductId='"+txtProductId.Text+"' "

我哪里错了。帮助

4 个答案:

答案 0 :(得分:1)

imho,Quantity=Quantity+'"+txtAddQty.Text+"'无效。

您需要删除',因为您要将varchar添加到int

编辑:您还可以使用调试器来检查字符串的输出。

答案 1 :(得分:1)

我猜Quantity是数字,因此您应该删除字符串中的撇号'

请不要使用字符串连接生成SQL查询。
使用参数化查询:How do I create a parameterized SQL query? Why Should I?

答案 2 :(得分:1)

您正在连接数量和字符串(txtAddQty.Text)

"UPDATE tblproducts SET Quantity = Quantity + " + Convert.ToInt32(txtAddQty.Text) + 
" WHERE ProductId='" + txtProductId.Text + "'"

<强>注意

  1. 如果txtAddQty.Text提供字母而不是数字值,则上述SQL语句失败。
  2. 如果txtProductId.Text给出意外值
  3. ,也会失败
  4. 不建议从应用程序处理数据库的方式。
  5. 不是通过字符串连接制作sql语句,而应使用参数化sql查询。这样做会阻止一些sql注入问题。

答案 3 :(得分:-1)

尝试删除单引号,因为您尝试将其添加为数字。仅对字符串使用引号。

示例:

UPDATE tblproducts SET Quantity=Quantity+"+txtAddQty.Text+" WHERE ProductId='"+txtProductId.Text+"' "