我使用 Microsoft Access 为我使用 VB 2010 创建的应用程序创建了一个数据库文件。在另一台计算机上安装时,它显示以下与保存文件有关的错误。
您的应用程序中发生了未处理的异常。如果您单击继续,应用程序将忽略此错误并尝试继续。如果您单击退出,应用程序将立即关闭。
操作必须使用可更新查询。
错误信息详情:
System.Data.OleDb.OleDbException (0x80004005): 操作必须使用可更新的查询。
谁能解释我如何保存到数据库并防止此错误?
我使用 Microsoft Access 为我使用 VB 2010 创建的应用程序创建了一个数据库文件。在另一台计算机上安装时,它显示以下与保存文件有关的错误。
您的应用程序中发生了未处理的异常。如果您单击继续,应用程序将忽略此错误并尝试继续。如果您单击退出,应用程序将立即关闭。
操作必须使用可更新查询。
错误信息详情:
System.Data.OleDb.OleDbException (0x80004005): 操作必须使用可更新的查询。
谁能解释我如何保存到数据库并防止此错误?
该网站很好地总结了为什么 Access 查询可能无法更新。在不了解有关您的特定情况的更多详细信息的情况下,我能做的最好的就是在此处复制建议,您可以查看其中是否适用于您的情况。我最初的猜测是不工作的数据库已经以只读模式打开,或者在文件上设置了只读标志,或者用户权限不足。
第一步是找出查询不可更新的原因。以下查询不可更新:
- 任何带有 GROUP BY 子句的查询。
- 任何带有 TRANSFORM 子句的查询。
- 在 SELECT 子句中使用聚合函数(SUM()、MAX()、COUNT() 等)的任何查询。
- 任何包含 DISTINCT 谓词的查询。
- 任何包含 UNION 运算符的查询。
- 在 SELECT 子句中包含子查询的任何查询。
- 任何 SQL 直通查询。
- 基于存在多对一多关系的三个或更多表的任何查询。
- 基于只读查询的任何查询。
有时应该是可更新的查询不是。通常,查询之外的东西是影响:
- 基础表可能是只读的。或者数据库以只读模式打开。
- 用户必须有权更新基础数据。
- 该记录可能被暂时锁定。稍后再试。