OleDbCommand cmd = new OleDbCommand("UPDATE mytable SET " + "col2=@col2 WHERE col1=@col1", connection);
cmd.Parameters.Add(new OleDbParameter("@col1", "col1"));
cmd.Parameters.Add(new OleDbParameter("@col2", "col2"));
won't work because it should be
cmd.Parameters.Add(new OleDbParameter("@col2", "col2"));
cmd.Parameters.Add(new OleDbParameter("@col1", "col1"));
Why name the parameters if it depends on the order ? and why ado.net doen't even fire any error ?