Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;操作必须使用可更新的查询;部署后_C#_Wpf_Database_Ms Access - Fatal编程技术网

C# &引用;操作必须使用可更新的查询;部署后

C# &引用;操作必须使用可更新的查询;部署后,c#,wpf,database,ms-access,C#,Wpf,Database,Ms Access,我用C#(WPF)和Access 2010数据库创建了一个桌面应用程序,我还为它创建了安装程序。我的问题是,当我把它安装在我的电脑上时,它工作正常,但当我把它安装在其他电脑上时,它就会出现异常,如 “操作必须使用可更新的查询” 我已经搜索过了,找到的每个答案都表明这是一个权限问题。我已尝试授予对数据库文件夹的完全访问权限,但仍然出现相同的错误,我在过去两天中尝试解决该问题,但仍然没有找到解决方案。如果安装程序将数据库文件与可执行文件放在同一文件夹中,例如。,C:\Program Files\my

我用C#(WPF)和Access 2010数据库创建了一个桌面应用程序,我还为它创建了安装程序。我的问题是,当我把它安装在我的电脑上时,它工作正常,但当我把它安装在其他电脑上时,它就会出现异常,如

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


我已经搜索过了,找到的每个答案都表明这是一个权限问题。我已尝试授予对数据库文件夹的完全访问权限,但仍然出现相同的错误,我在过去两天中尝试解决该问题,但仍然没有找到解决方案。

如果安装程序将数据库文件与可执行文件放在同一文件夹中,例如。,
C:\Program Files\myApp\
则普通用户只能以只读方式访问数据库:

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

…而且您肯定不想向普通
用户
打开对该文件夹的读写访问权限。(有关文件/文件夹权限对Jet/ACE数据库的影响的详细信息,请参阅我的答案。)


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

下的某个位置。您的安装程序是否也分发数据库文件?如果是,是否将数据库文件与可执行文件放在同一文件夹中。。。例如
C:\Program Files\yourApp
?是的,我的数据库文件与其他可执行文件位于同一文件夹中。为供参考,我已将我的exe文件上载到上述链接是的,我的数据库文件与其他可执行文件位于同一文件夹中。作为参考,我已在上述链接中上载了我的exe文件。您是否尝试以管理员身份运行应用程序?如果在运行查询时发生此异常,则该查询中的表是否具有主键?我以前在对没有主键的表运行更新查询时遇到过此错误谢谢您的答复,但我对此表示怀疑,因为我已经授予了所有权限,即使我将其安装在其他驱动器(如D驱动器)上,也会发生相同的异常。