我已将我的应用程序部署为准备供其他用户(另一台计算机)使用,但当我尝试将数据添加到数据库时,我收到错误
操作必须使用可更新的查询
错误是这样的(这是我已经部署了我的程序并在应用程序下运行,而不是在Visual Studio下运行):
但它在visual studio下完美运行,这样的图像(请注意,一旦我点击提交按钮,它就会出现在数据库中,并将其显示在datagridview上,就像图像一样下文):
而且我还有另一个问题,删除功能没有运行,添加和删除错误在我部署程序后出现,但我会在另一个帖子上发布。
我该如何解决这个问题?
答案 0 :(得分:5)
当Visual Studio应用程序正在开发中时,它驻留在开发人员具有读/写访问权限的文件夹中。这显然是必要的,因为开发人员需要能够编辑源代码文件。如果将数据库文件“放入代码”,则应用程序可以更新数据库文件,因为它位于“可写”位置。
但是,如果在部署时数据库文件保持“与代码”,并且安装程序将文件(即可执行文件和数据库文件)放入目标计算机上的%ProgramFiles%
(例如,{{ 1}})然后普通用户将不拥有该位置的写入权限。 C:\Program Files\MyApplication
中的文件通常仅限于只读,以保护系统免受恶意软件的侵害。
有些人会尝试配置安装程序,以便为%ProgramFiles%
下的某些文件或文件夹授予普通用户写入权限,但这是 Bad Idea™。安装程序应该将数据库文件真正复制到通常为目标用户读/写的位置:%ProgramFiles%
(针对特定用户)或%USERPROFILE%
(针对所有用户)。