我已经仔细检查了我的SQL语句,似乎我的SQL语句是错误的.我不知道为什么它不起作用.我的SQL语句是正确的,这导致了这个OleDBException.
这是代码
public void updateAccount(Int32 accountid, String username, String password, String isdisable)
{
con.ConnectionString = db.konek();
String sql = "UPDATE accounts SET username = @username, password = @password, isdisable = @isdisable WHERE accountid = @accountid";
try
{
con.Open();
OleDbCommand cmd = new OleDbCommand(sql, con);
cmd.Parameters.AddWithValue("@username", username);
cmd.Parameters.AddWithValue("@password", password);
cmd.Parameters.AddWithValue("@isdisable", isdisable);
cmd.Parameters.AddWithValue("@accountid", accountid);
cmd.ExecuteNonQuery();
}
finally
{
con.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
我的MS Access Table的屏幕截图

例外截图

您使用的是MICROSOFT JET保留字 PASSWORD.
这是语法错误的起源.
你应该用方括号封装你的sql命令
String sql = "UPDATE accounts SET username = @username, [password] = @password, " +
"isdisable = @isdisable WHERE accountid = @accountid";
Run Code Online (Sandbox Code Playgroud)
并为命名参数问题.
就Microsoft Access而言,提供程序Microsoft.ACE.OLEDB.12.0允许您使用与SqlServer兼容的上述语法.但是,在OleDbCommand的OleDbParameter集合中插入参数时,您应该遵守参数占位符的正确顺序
| 归档时间: |
|
| 查看次数: |
6160 次 |
| 最近记录: |