SQL错误“一个或多个必需参数缺少值。”

时间:2014-06-01 21:38:46

标签: sql database vb.net

它告诉我我在这里缺少一个参数,但我似乎无法弄清楚为什么。我有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()

1 个答案:

答案 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))