MS Access:更新查询没有错误但什么都不做

时间:2017-01-18 21:11:28

标签: c# oledb access

使用此代码更新记录

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中。发生了什么事?

1 个答案:

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