2016-08-03 64 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

相关问题