MS Access:更新查询没有错误但不执行任何操作

MS Access: Update query has no errors but does nothing

使用此代码更新记录

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)   {   }
}

但是记录没有更新。我没有错误。该记录存在于数据库中。怎么回事?

我不知道为什么,但您必须按照它们在查询字符串中出现的顺序添加查询参数。所以翻转这两行

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));