C# &引用;操作必须使用可更新的查询;来自已编译的应用程序,但不是在调试时

C# &引用;操作必须使用可更新的查询;来自已编译的应用程序,但不是在调试时,c#,ms-access,jet,C#,Ms Access,Jet,“操作必须使用可更新的查询” 我有一个带有Access数据库(Access 2003)的旧应用程序,但前端是用C#.NET(4.5)编写的 该数据库已有10多年的历史,而C#前端已经运行了7年左右。我自己写的,所以我对里面的东西很熟悉 在过去两周内,每当有人试图更新或插入行时,我就开始出现上面列出的错误。我在两年多的时间里没有对这个项目做任何改变 我想,“没问题,我是个程序员,我会调试它”。有趣的是,当我在VisualStudio中运行时,程序运行良好。我没有错误。但即使在重新编译之后,然后从V

“操作必须使用可更新的查询”

我有一个带有Access数据库(Access 2003)的旧应用程序,但前端是用C#.NET(4.5)编写的

该数据库已有10多年的历史,而C#前端已经运行了7年左右。我自己写的,所以我对里面的东西很熟悉

在过去两周内,每当有人试图更新或插入行时,我就开始出现上面列出的错误。我在两年多的时间里没有对这个项目做任何改变

我想,“没问题,我是个程序员,我会调试它”。有趣的是,当我在VisualStudio中运行时,程序运行良好。我没有错误。但即使在重新编译之后,然后从VS2010升级到VS2012,从.NET 4.0升级到.NET 4.5,我仍然会遇到上述错误,除非我在Visual Studio中运行。注意:这不是一个web应用程序。它是一个独立的windows应用程序

我在谷歌上搜索了一下,发现了其他一些人也会犯同样的错误,但没有一个能和我的问题相匹配

我所有的行都有自动递增的主键


如果有任何帮助,我们将不胜感激。

您在调试时是否仔细检查了所访问的数据库文件是否完全相同?(关于:部署后出现的常见“数据库与.exe位于同一文件夹中”问题。)数据库文件是否在网络共享上?如果是,它是真正的Windows SMB共享还是可能运行Linux(特别是Samba)的第三方文件共享设备?对数据库进行了压缩和修复,然后验证没有主键索引被意外删除?(我在Samba分享中看到了这一点。)谢谢你的想法。没有进行过压缩和修复。我确实回去检查了主键。不是在所有表上,而是在几个特定表上,然后在该表上尝试特定操作。数据库是通过ODBC连接访问的,肯定是在同一个地方。当我运行VS时,它工作。但是,当我在VS将获得的位置运行最近编译的版本时,它不起作用。更新:这似乎与不再支持Access 2003有关。我正在将数据库转换为MS SQL,因为这是免费的。