部署到"C:\ Program Files\..."后,我的应用程序无法更新Access数据库

Kao*_*oru 3 c# datagridview visual-studio-2010 ms-access-2010 visual-studio-2013

我已经部署了我的应用程序以备另一个用户(另一台计算机)使用,但是当我尝试将数据添加到数据库时,我得到了错误

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

错误是这样的(这是我已经部署我的程序并在应用程序下运行,而不是在Visual Studio下运行):

在此输入图像描述

但它在visual studio下运行得很好,这样的图像(请注意,一旦我点击提交按钮,它就会出现在数据库中,并将其显示在datagridview上,如下图所示):

在此输入图像描述

而且我还有另一个问题,删除功能没有运行,添加和删除错误出现在我部署我的程序后,但我会在另一个线程上发布.

我该如何解决这个问题?

Gor*_*son 5

当Visual Studio应用程序正在开发中时,它驻留在开发人员具有读/写访问权限的文件夹中.这显然是必要的,因为开发人员需要能够编辑源代码文件.如果将数据库文件"放入代码",则应用程序可以更新数据库文件,因为它位于"可写"位置.

但是,如果在部署时数据库文件保持"与代码"并且安装程序将文件(即可执行文件和数据库文件)放入%ProgramFiles%目标计算机(例如C:\Program Files\MyApplication),那么普通用户将没有写访问权限到那个地方.文件%ProgramFiles%通常限制为只读,以保护系统免受恶意软件的侵害.

有些人会尝试配置安装程序以授予普通用户对某些文件或文件夹的写访问权,%ProgramFiles%但这是一个坏主意™.安装程序应该将数据库文件真正复制到通常为目标用户读/写的位置%USERPROFILE%:(对于特定用户)或%PUBLIC%(对于所有用户).