C# C OLEDB连接更新不工作

C# C OLEDB连接更新不工作,c#,oledb,C#,Oledb,有关守则: public static void updateItemAmount(int item_id, int delta) { using (OleDbCommand cmd = connection.CreateCommand()) { // create command with placeholders cmd.CommandText = "UPDATE Items SET amount_total = amo

有关守则:

public static void updateItemAmount(int item_id, int delta)
{
    using (OleDbCommand cmd = connection.CreateCommand())
    {
        // create command with placeholders
        cmd.CommandText =
            "UPDATE Items SET amount_total = amount_total+@delta WHERE item_number=@item_id;";

        // add named parameters
        cmd.Parameters.AddRange(new OleDbParameter[]
        {
            new OleDbParameter("@item_id",item_id),
            //new OleDbParameter("@delta",delta),

        });
        cmd.Parameters.Add("@delta", OleDbType.Integer).Value = delta;

        // execute
        if (cmd.ExecuteNonQuery() == 0)
            MessageBox.Show("Error");
    }
}

即使我验证了item_id是正确的,我仍不断收到错误消息。为什么?几分钟后我发现了问题。显然,参数必须按顺序绑定。这修正了它:

            cmd.Parameters.AddRange(new OleDbParameter[]
            {
                new OleDbParameter("@delta",delta),
                new OleDbParameter("@item_id",item_id),

            });
            //cmd.Parameters.Add("@delta", OleDbType.Integer).Value = delta;

错误消息是什么ExecuteOnQuery返回受影响的行数。在您的情况下,代码执行正确,但不影响任何行。这应该不是问题所在