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# 和 OleDbConnection 读取 .xlsx 和 .xls 文件?
ASP.NET MVC C# Razor SQL 1 of 2 几乎相同的更新查询不起作用