簡體   English   中英

SQL和VB.NET 2008查詢

[英]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是數字,對嗎? 因此,請勿嘗試從數字中減去字符串(文本框周圍的引號)
  • 其次,您編寫查詢,但是沒有代碼顯示如何在命令中設置此文本
  • 第三,應在需要時打開連接,然后立即關閉/放置( 使用語句對此非常重要)
  • 第四,如何檢查用戶是否輸入數字值而不是假字符串? TryParse將有助於避免執行失敗的查詢
  • 第五,這是最重要的。 不要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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM