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返回受影响的行数。在您的情况下,代码执行正确,但不影响任何行。这应该不是问题所在