【问题标题】:OleDbCommand throw exception on valid command textOleDbCommand 在有效的命令文本上抛出异常
【发布时间】:2013-04-13 09:57:35
【问题描述】:

我有 OleDbConnection 来连接访问数据库。但是当我执行查询时,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;

但是,当执行上面的代码时,它会在dbCommand.ExecuteNonQuery() 处抛出Syntax error in UPDATE statement. 异常。如何处理这个问题?

【问题讨论】:

  • 也许用户名和密码是保留字?也不需要添加带有名称的参数吗?因为 OleDbParameters 是位置的,而不是命名的。在 b4 中所有使用命名参数的代码示例。

标签: c# sql ms-access oledb


【解决方案1】:

PASSWORD 是保留关键字,需要用括号转义,

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

【讨论】:

    猜你喜欢
    • 2021-02-27
    • 2014-07-22
    • 2017-01-19
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多