[英]SQL and VB.NET 2008 Query
這是我所擁有的:
Con.close()
Con.open()
Query ="Update Products Set QOH = QOH - '" & txtQoH.text & "' Where Prod_ID ='"& textbox1.text & "'"
Command.ExecuteNonQuery()
Con.Close().
好的,一旦購買了一定數量的產品,我將嘗試更新現有的產品數量。 所以我已經嘗試過了,但是它不起作用,有人可以幫我嗎?
您的代碼有太多問題。 讓我開始列出它們。
QOH
是數字,對嗎? 因此,請勿嘗試從數字中減去字符串(文本框周圍的引號) 第五,這是最重要的。 不要CONCATENATE字符串來構建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
除非您遺漏了一些代碼,否則我看不到您實際上在哪里設置Command
對象的CommandText
:
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 WHERE PROD_ID = 12312312
或在您的代碼中:查詢=“更新產品集QOH = QOH-”&txtQoH.text&“其中Prod_ID =”&textbox1.text&“
我所看到的..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.