Microsoft Access UPDATE command using C# OleDbConnection and Command NOT working
13,283
Solution 1
try
string query = "UPDATE [Contact] SET [FirstName] = ? [LastName] = ?, [MobileNumber] = ? WHERE [Id] = ?"
Add your parameters in the order of the statement, i.e. firstname...id
Solution 2
You need ? for the place holder and the parameters must be added in the order in which they occur: http://msdn.microsoft.com/en-us/library/dw70f090.aspx
Author by
George Taskos
Updated on June 07, 2022Comments
-
George Taskos almost 2 years
I'm using Microsoft Access unfortunately because of higher forces and trying to update a record with no luck.
This is the code:
private void UpdateContact(Contact contact) { using (OleDbConnection db = new OleDbConnection(_connString)) { string query = "UPDATE [Contact] SET [FirstName] = @FirstName, [LastName] = @LastName, [MobileNumber] = @MobileNumber WHERE [Id] = @Id"; OleDbCommand cmd = new OleDbCommand(query, db) { CommandType = CommandType.Text }; cmd.Parameters.AddWithValue("@Id", contact.Id); cmd.Parameters.AddWithValue("@FirstName", contact.FirstName); cmd.Parameters.AddWithValue("@LastName", contact.LastName); cmd.Parameters.AddWithValue("@MobileNumber", contact.MobileNumber); db.Open(); int rowsAffected = cmd.ExecuteNonQuery(); db.Close(); } }
Everything seems to be fine, no exception but no rowsAffected either. It always returns 0. I have checked the values while debugging and its the correct that should persist. The access file created with MS Access 2007 but its type is of 2002-2003.
Any idea what am I doing wrong?