使用此代码更新记录
var query = "UPDATE myTable SET name = @name where id = @id";
using (DbCommand cmd = new OleDbCommand(query, connection))
{
try
{
cmd.Parameters.Add(new OleDbParameter("@id", item.Id));
cmd.Parameters.Add(new OleDbParameter("@name", item.Name));
cmd.ExecuteNonQuery();
}
catch (Exception e) { }
}
但记录没有更新。我没有错。该记录存在于DB中。发生了什么事?
答案 0 :(得分:1)
我不知道为什么,但您必须按查询字符串中出现的顺序添加查询的参数。所以翻转这两行
cmd.Parameters.Add(new OleDbParameter("@id", item.Id));
cmd.Parameters.Add(new OleDbParameter("@name", item.Name));
到
cmd.Parameters.Add(new OleDbParameter("@name", item.Name));
cmd.Parameters.Add(new OleDbParameter("@id", item.Id));