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

SQL错误“;一个或多个必需参数缺少值。”;,sql,database,vb.net,Sql,Database,Vb.net,它告诉我我这里缺少一个参数,但我似乎不知道为什么。我有两个参数,cmd语句下面给出了两个值 提前谢谢 cmd = New OleDbCommand("UPDATE Inventory SET CurBalDue = (CurBalDue + ?) WHERE CustID = ?", Con) Prm = New OleDbParameter("CurBalDue", Totcost) cmd.Parameters.Add(Prm)

它告诉我我这里缺少一个参数,但我似乎不知道为什么。我有两个参数,cmd语句下面给出了两个值

提前谢谢

        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()
AddWithValue
向集合中添加一个新参数,在一个步骤中使用一个值。另外,OleDB不支持命名参数,因此您这样使用它们是在愚弄自己。它们只是位置占位符,请按参数在SQL中出现的顺序添加参数

我无法判断这些生物的数据类型<代码>总成本可能必须转换为:

    cmd.Parameters.AddWithValue("@p1", Convert.ToDecimal(Totcost))

您使用的是同一个参数对象。也许可以试着创建一个新的?不过我增加了数据库中的那个特定字段,我的意思是courbaldue(它是一个数字)。如果我更改了,它也不会按我希望的方式工作。更改代码中的对象对数据库中的数据没有影响。代码所做的只是生成一个要发送到数据库的查询。我的意思是,重复使用相同的
OleDbParameter
对象可能会导致错误,使用两个对象而不是一个对象可能会纠正错误。也许值得一试,至少尝试一下作为修复。除非您还更改了其他内容,否则它不会更改您发送到数据库的查询?因为在之前的程序语句中,我使用了15次以上,它们都可以正常工作。使用
AddWithValue
-
    cmd.Parameters.AddWithValue("@p1", Convert.ToDecimal(Totcost))