OleDbCommand 在有效的命令文本上抛出异常
Posted
技术标签:
【中文标题】OleDbCommand 在有效的命令文本上抛出异常【英文标题】:OleDbCommand throw exception on valid command text 【发布时间】: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 中所有使用命名参数的代码示例。 【参考方案1】:PASSWORD
是保留关键字,需要用括号转义,
UPDATE tblUser set username = ?, [password] = ? where ID = 1
MS Access Reserved Keywords
【讨论】:
以上是关于OleDbCommand 在有效的命令文本上抛出异常的主要内容,如果未能解决你的问题,请参考以下文章
json.dump 在看似有效的对象上抛出“TypeError: ... is not JSON serializable”?
json_extract_path_text('[]', 'some_key') 在有效的 json 字符串上抛出错误
为啥 VB6 MkDir 命令在其他机器上抛出错误 75 而在我的机器上却没有?
MIME::Lite 在包升级后在命令通道错误上抛出意外的 EOF
如何解决 npm install 在非 MAC 操作系统上抛出 fsevents 警告?
为啥 FileSystemXmlApplicationContext 在存在的文件上抛出 FileNotFoundException