【问题标题】:Error: operation must use an updateable query错误:操作必须使用可更新查询
【发布时间】:2025-12-21 22:50:06
【问题描述】:

设置应用程序(使用 VS 2008 和 MS Access 开发)后,在另一个系统中的安装工作正常。但是,每当我尝试更改密码或 ID 时(用户需要访问登录窗口才能进入主窗口),它都会显示错误消息“操作必须使用可更新查询”。任何人都可以提出补救措施吗?

谢谢你, 吲哚尼

【问题讨论】:

  • 你在说什么“密码或身份证”?您的 Jet/ACE 文件是什么格式的? ACCDB 还是 MDB?您使用的是 Jet 用户级安全 (MDB) 还是数据库密码?你的连接字符串是什么?有问题的 SQL 是什么?
  • 登录和查看主窗口的简单 id 和密码...连接字符串是“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Game.accdb” 我没有给出安全级别..冒犯 SQL?
  • 昨晚我尝试了在friend1机器(windows7 OS)上的设置,它在那里有效地工作,但在我的(Vista)上也没有在另一台friend2机器上。
  • 您的连接字符串中应该包含用户名和密码,因此您提供的内容无济于事。当我询问“有问题的 SQL”时,我要求您发布导致错误的 SQL。当然,我假设您在登录后运行 SQL 语句以获取您报告的错误消息。
  • 问题出在生产环境中,而不是在您的笔记本电脑上。如果将应用程序放置在用户没有写入权限的位置,您可能会遇到这类问题。

标签: visual-studio-2008 ms-access


【解决方案1】:

您是否检查过两种设置的权限是否相同?您需要对包含 Access 文件的文件夹具有最低限度的读写权限。

要检查权限,可以右键单击文件或文件夹并选择“属性”。安全选项卡将显示详细信息。

对于 Web 应用程序,您需要检查 IUSRS 的权限。

【讨论】:

  • 我将文件放入调试中,昨晚我尝试在一台friend1机器(windows7操作系统)上进行设置,它在那里有效地工作,但在我的(Vista)上也没有在另一台friend2机器上。跨度>
  • 你可以单步执行代码并发布它停止的那一行以及该点周围的几行吗?
  • 在我创建设置然后登录后,它工作正常,但每当我尝试更改密码或用户名时,都会显示消息(而且不是在每台机器上)
  • 然而,当我在 VS2008 中调试它们时一切正常,即使是更新部分。我很困惑。
  • 我添加了一个关于检查权限的注释。
【解决方案2】:
  1. 要修复此错误,您需要以管理员权限运行您的应用程序
  2. 执行以下步骤以管理员权限运行应用程序
  3. 从级别更改

    <requestedExecutionLevel level="asInvoker" uiAccess="false" />

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

它在 UAC 设置中可用,位于项目设置中

【讨论】: