【问题标题】:C# oledbconnection Update doesn't workC# oledbconnection 更新不起作用
【发布时间】:2014-08-20 11:41:05
【问题描述】:

有问题的代码:

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 正确,我仍不断收到“错误”消息。这是为什么呢?

【问题讨论】:

  • 错误信息是什么
  • ExecuteNonQuery() 返回受影响的行数。在您的情况下,代码可以正确执行,但不会影响任何行。

标签: c# oledb


【解决方案1】:

几分钟后我发现了问题。显然参数必须按顺序绑定(?)。这修复了它:

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

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

【讨论】:

  • 这应该不是问题
猜你喜欢
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 2011-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多