错误:操作必须使用可更新的查询.从 Web 服务访问.mdb文件时
本文关键字:服务 Web 访问 mdb 文件 查询 操作 可更新 错误 | 更新日期: 2023-09-27 17:56:57
我想通过 Web 服务对.mdb文件执行 CRUD 操作。该服务运行良好,并在我的机器(开发环境)上执行所有 CRUD 操作。但是当我实际将其托管在服务器上时,当我尝试使用浏览器或任何使用该应用程序的客户端测试服务时,它会引发Error: Operation must use an updateable query.
错误。
.mdb文件对服务器的所有用户具有完全权限,如此处和此处所述Web 服务中的连接字符串如下所示。
string strConnection = @"Provider=Microsoft.ACE.OLEDB.12.0 ;Data Source=";
strConnection += Server.MapPath(".''App_Data''users.mdb");// + "; user id=;password=;";
string strSQL = "SELECT * FROM user_info";
OleDbDataAdapter userAdapter = new OleDbDataAdapter(strSQL, strConnection);
OleDbCommandBuilder userCB = new OleDbCommandBuilder(userAdapter);
.mdb文件在任何其他程序中都没有打开/关闭。 我在这里错过了什么。
根据我找到的堆栈跟踪.我在这里发布查询执行方法,如果它可能有帮助
OleDbConnection connection = new OleDbConnection(strConnection);
OleDbCommand logCommand = new OleDbCommand(strLogSQL_User, connection);
logCommand.Connection.Open();
logCommand.ExecuteNonQuery();
logCommand = new OleDbCommand(strLog_User, connection);
logCommand.ExecuteNonQuery();
logCommand.Connection.Close();
return "true";
我解决了这个问题。问题出在logCommand.ExecuteNonQuery();
方法上。它无法找出我尝试执行的命令类型。在调用 ExecuteNonQuery()
方法之前,我将其添加到命令中,它起作用了。
logCommand.CommandType = CommandType.Text;
希望它可能有助于挽救某人的一天。
谢谢