这是我所拥有的:。
Con.close()
Con.open()
Query ="Update Products Set QOH = QOH - '" & txtQoH.text & "' Where Prod_ID ='"& textbox1.text & "'"
Command.ExecuteNonQuery()
Con.Close().
好的,我正在尝试在购买一定数量的产品后更新手头的产品数量。所以我试过了,它不起作用,有人可以帮助我吗?
你的代码有很多问题。让我开始列出它们。
QOH
是数字对吗?所以不要尝试从数字中减去字符串(文本框周围的引号)第五,这是最重要的。不要连接字符串来构建 sql 命令。始终使用参数化查询
Dim qty
If Int32.TryParse(txtQoH.text, qty) Then
MessageBox.Show("Invalid numeric quantity")
Return
End if
Dim prodID
If Int32.TryParse(textBox.text, prodID) Then
MessageBox.Show("Invalid product ID")
Return
End if
Query ="Update Products Set QOH = QOH - @qty Where Prod_ID = @prodID"
Using con = new SqlConnection(.....constring here ....)
Using cmd = new SqlCommand(con, Query)
cmd.Parameters.AddWithValue("@qty", qty)
cmd.Parameters.AddWithValue("@prodID", prodID)
cmd.ExecuteNonQuery()
End Using
End Using
除非您遗漏了一些代码,否则我看不到您实际设置对象的CommandText
位置Command
:
Query ="Update Products Set QOH = QOH - '" & txtQoH.text & "' Where Prod_ID ='"& textbox1.text & "'"
Command.CommandText = Query
Command.ExecuteNonQuery()
您还应该使用参数而不是字符串连接,但这是另一个问题......
作为第一个 U 尝试从一个整数列中减去一个文本项(您的 txtQoH.text)。(我认为)
其次,您的 Prod_ID 也是一个整数列。
尝试不带 ' 的查询
某事 像这样:
更新产品集 QOH=QOH - 2 其中 PROD_ID=12312312
或在您的代码中: Query ="Update Products Set QOH = QOH -" & txtQoH.text & " Where Prod_ID ="& textbox1.text & ""
我所看到的..