它告诉我我在这里缺少一个参数,但我似乎无法弄清楚为什么。我有2个参数,并在cmd语句下面给出了2个值。
提前致谢。
cmd = New OleDbCommand("UPDATE Inventory SET CurBalDue = (CurBalDue + ?) WHERE CustID = ?", Con)
Prm = New OleDbParameter("CurBalDue", Totcost)
cmd.Parameters.Add(Prm)
Prm = New OleDbParameter("CustID", lblCustID.Text)
cmd.Parameters.Add(Prm)
cmd.ExecuteNonQuery()
答案 0 :(得分:1)
Dim SQl As string = "UPDATE Inventory SET CurBalDue = (CurBalDue + ?)
WHERE CustID = ?"
Using cmd as New OleDbCommand(SQL, con)
cmd.Parameters.AddWithValue("@p1", Totcost)
cmd.Parameters.AddWithValue("@p2", lblCustID.Text)
cmd.ExecuteNonQuery()
End Using ' dispose of the disposable
AddWithValue
为集合添加一个新参数,其值为一步。此外,OleDB不支持命名参数,因此您通过使用它们来欺骗自己一点点。它们只是位置占位符,按它们在SQL中出现的顺序添加params。
我无法分辨这些小动物的数据类型。 Totcost
可能需要转换:
cmd.Parameters.AddWithValue("@p1", Convert.ToDecimal(Totcost))