2017-07-26 95 views
-1

我有更新我的数据库与股票问题。我想将库存添加到清单中可用的以前的库存中,但错误说在WHERE之前检查您的mysql语法。这是我的查询。更新库存数量与上一个数量保持一致

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

我在哪里错了。帮助

+1

你想一个'string'添加量?这似乎是错误的。我希望'数量'是某种数值。 - 另外:*请*阅读关于SQL注入攻击。你的代码是开放的。改用SQL参数。 – Corak

回答

1

您串联数量和字符串(txtAddQty.Text)

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

注意

  1. 上面的SQL语句失败,如果txtAddQty.Text给字母而不是数字值。
  2. 如果txtProductId.Text给出意想不到的值也会失败
  3. 不建议用数据库处理应用程序的方式。

而不是通过字符串连接生成sql语句您应该使用parametrized sql查询。这样做可以防止一些sql注入问题。

+0

谢谢这个为我工作.. –

1

恕我直言,Quantity=Quantity+'"+txtAddQty.Text+"'将无法​​正常工作。

您需要删除这些',因为你将一个varchar添加到一个int

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

-1

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

例子:

UPDATE tblproducts SET Quantity=Quantity+"+txtAddQty.Text+" WHERE ProductId='"+txtProductId.Text+"' " 
相关问题