Geo*_*kos 3 oledb ado.net ms-access c#-4.0
不幸的是,我正在使用Microsoft Access,因为更高的力量并试图更新记录而没有运气.
这是代码:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好,没有例外,但也没有受影响的行.它总是返回0.我在调试时检查了它的值,并且它应该保持正确的值.使用MS Access 2007创建的访问文件,但其类型为2002-2003.
知道我做错了什么吗?
尝试
string query = "UPDATE [Contact] SET [FirstName] = ? [LastName] = ?, [MobileNumber] = ? WHERE [Id] = ?"
Run Code Online (Sandbox Code Playgroud)
按语句的顺序添加参数,即firstname ... id