Using this code to update a record
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) { }
}
But the record does not get updated. I get no error. The record exists in the DB. What is going on?
I don't know why but you have to add the parameters of your query in the order they appear in your query string. So flip these two lines
cmd.Parameters.Add(new OleDbParameter("@id", item.Id));
cmd.Parameters.Add(new OleDbParameter("@name", item.Name));
to
cmd.Parameters.Add(new OleDbParameter("@name", item.Name));
cmd.Parameters.Add(new OleDbParameter("@id", item.Id));