C# oledbconnection 更新不起作用

Posted

技术标签:

【中文标题】C# oledbconnection 更新不起作用【英文标题】:C# oledbconnection Update doesn't work 【发布时间】: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() 返回受影响的行数。在您的情况下,代码可以正确执行,但不会影响任何行。 【参考方案1】:

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

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

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

【讨论】:

这应该不是问题

以上是关于C# oledbconnection 更新不起作用的主要内容,如果未能解决你的问题,请参考以下文章

访问更新语句在 C# 中不起作用

C#如何把DataTable更新到Access数据库

如何使用 C# 和 OleDbConnection 读取 .xlsx 和 .xls 文件?

ASP.NET MVC C# Razor SQL 1 of 2 几乎相同的更新查询不起作用

C#调用OleDbConnection类读取Excel表格时,报错外部组件发生异常!

带有参数的 Oledb 更新命令在 access-db 上不起作用