2016-08-03 58 views
0

我使用庫存系統。我的代碼有錯誤,它說例外:VB.NET和MS-ACCESS數據庫中的一個或多個所需參數沒有給出值

沒有給出一個或多個必需參數的值。

並且錯誤發生在cmd.ExecuteNonQuery()。這是什麼意思?有人能幫我嗎?順便說一句,這段代碼是用來扣除數據庫上的物料數量。對不起,我的英語不好。

con.Open() 
Dim sqlQry As String = "UPDATE [tbl_Stocks] 
         SET [Quantity] = [Quantity] - @QU 
         WHERE Products='" & lbPro.Text & "'" 
Using cmd As New OleDbCommand(sqlQry, con) 
    cmd.Parameters.AddWithValue("@QU", lbQuan.Text) 
    cmd.ExecuteNonQuery() 
    con.Close() 
    MsgBox("Save Successfully!") 
End Using 
+1

使用參數也爲產品的價值,然後檢查字段名稱是否正確寫入 – Steve

+0

什麼是列數量的數據類型? – Steve

+0

請[使用參數化的SQL代替](http://stackoverflow.com/q/35163361/87698)。 – Heinzi

回答

0

我沒有看到任何缺陷。試試這個替代品(一個小調整通過參數發送兩個輸入端)

con.Open() 
Dim sqlQry As String = "UPDATE [tbl_Stocks] SET [Quantity] = [Quantity] - @QU " & 
         "WHERE [email protected]" 
Using cmd As New OleDbCommand(sqlQry, con) 
    cmd.Parameters.AddWithValue("@QU", lbQuan.Text) 
    cmd.Parameters.AddWithValue("@prod", lbPro.Text) 
    cmd.ExecuteNonQuery() 
    con.Close() 
    MsgBox("Save Successfully!") 
End Using 
+0

我嘗試使用此代碼,但出現錯誤「沒有給出一個或多個必需參數的值」。仍然在提示。 – NiewBiee2020

+0

你注意到了@ @ prod嗎?如果不是,那麼確保'lbQuan'&'lbPro'的值不爲空或爲空 – jonju

+0

唯一的問題是我拼錯了列名產品,但代碼正在工作!謝謝! – NiewBiee2020

相關問題