C# OleDbCommand在有效命令文本上引发异常

C# OleDbCommand在有效命令文本上引发异常,c#,sql,ms-access,oledb,C#,Sql,Ms Access,Oledb,我有OLEDB连接以连接到access数据库。但当我执行查询时,OleDbCommand抛出异常,表示该命令无效。我完全相信这个命令是有效的 string ret = ""; string command = "UPDATE tblUser set username = ?, password = ? where ID = 1"; dbConn.Open(); using (var dbCommand = dbConn.CreateCommand()) { dbCommand.Co

我有OLEDB连接以连接到access数据库。但当我执行查询时,OleDbCommand抛出异常,表示该命令无效。我完全相信这个命令是有效的

 string ret = "";

string command = "UPDATE tblUser set username = ?, password = ? where ID = 1";
dbConn.Open();

using (var dbCommand = dbConn.CreateCommand())
{
    dbCommand.Connection = dbConn;
    dbCommand.CommandText = command;
    dbCommand.Parameters.AddWithValue("?", username);
    dbCommand.Parameters.AddWithValue("?", password);

    int temp = dbCommand.ExecuteNonQuery();
    if (temp > 0)
        ret = "sukses";
    dbConn.Close();                
}
return ret;

但是,当执行上面的代码时,它会在UPDATE语句中抛出异常,表示
语法错误。
位于
dbCommand.ExecuteNonQuery()
。如何处理此问题?

您需要用括号转义
密码
,因为它是一个保留关键字

UPDATE tblUser set username = ?, [password] = ? where ID = 1

用户名和密码可能是保留字?此外,不必添加名为“”的参数?因为OLEDB参数是位置参数,而不是命名参数。在b4中,所有使用命名参数的代码示例。