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

时间:2013-04-13 15:44:19

标签: c# wpf database ms-access

我用C#(WPF)创建了一个带有Access 2010数据库的桌面应用程序,我还为它创建了安装程序。我的问题是,当我在我的电脑上安装它时它工作正常,但是当我在其他PC上安装它然后它失败了,例如

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

我搜索过它,我发现的每个答案都表明这是一个权限问题。我试图提供对数据库文件夹的完全访问权限,但我仍然得到同样的错误,我已经尝试过去两天解决它但我仍然没有找到解决方案。

1 个答案:

答案 0 :(得分:0)

如果您的安装程序将数据库文件放在与可执行文件相同的文件夹中,例如C:\Program Files\myApp\,那么普通用户将只具有对数据库的只读权限:

myData.png

即使您的安装程序修改了数据库文件的权限,普通用户仍然具有对数据库的只读访问权限,因为他们对文件夹具有只读访问权限 ...

myApp.png

...并且您绝对不希望在该文件夹上打开对常规Users的读写访问权限。 (有关文件/文件夹权限对Jet / ACE数据库的影响的详细信息,请参阅我的回答here。)

相反,您的安装程序应该将数据库文件放入常规用户通常具有读写访问权限的文件夹中,可能位于%PUBLIC%下的某个位置。