错误:操作必须使用可更新的查询.从 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";

错误:操作必须使用可更新的查询.从 Web 服务访问.mdb文件时

我解决了这个问题。问题出在logCommand.ExecuteNonQuery();方法上。它无法找出我尝试执行的命令类型。在调用 ExecuteNonQuery() 方法之前,我将其添加到命令中,它起作用了。

logCommand.CommandType = CommandType.Text;

希望它可能有助于挽救某人的一天。

谢谢