访问数据库产生问题

本文关键字:问题 数据库 访问 | 更新日期: 2023-09-27 18:36:08

我创建了一个在其后端具有访问权限的Windows应用程序。 问题是当我安装它时,当我尝试插入或更新操作时,它显示操作必须使用可更新的查询....在此之后,我更改了访问数据库所在的文件夹的权限。现在它工作正常。现在的问题是,在我安装它的每台计算机上,我需要更改对程序文件中数据库文件夹的写入权限。是否有任何解决方案可以在设置创建时为我的文件夹设置权限。或您知道的任何其他解决方案.....提前致谢

访问数据库产生问题

不要把数据库放在程序文件夹中。
在最新的操作系统(如Win7或Vista)中,出于安全原因,此文件夹是只读的。

最好的地方是由枚举SpecialFolder.ApplicationData标识的文件夹。
您可以通过以下方式获得物理路径:

string commonAppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

在此路径中,您应该为应用程序提供专用路径。

string myDataPath = Path.Combine(commonAppData, "MyApplicationDataFolder");

仅当应用程序未被安装软件的用户使用时,此方案才有效。如果需要对数据库进行多(人)用户访问,则可以在本地磁盘或网络共享中自行创建一个文件夹,每个用户都可以在其中访问数据库。

通常,将数据库后端放置在用户计算机或网络共享中的工作保留给安装工具。市场上有许多免费和付费的工具。我不知道你使用哪种工具,我不能建议一个或另一个。但是,当您选择/使用一个时,您应该检查是否存在这些基本功能:

  • 能够引用窗口中存在的特殊文件夹环境。(我的文档、应用程序数据等)
  • 能够在这些特殊文件夹中创建子文件夹 (我的应用程序数据)
  • 能够创建网络共享或使用已存在的网络共享
  • 能够更新存储配置文件的位置连接字符串(字符串替换)

如果部署工具按预期工作,则无需在应用程序内执行任何操作,只需从配置文件中读取连接字符串并打开数据库。

创建一个具有完全相同内容的文本文件,并保存扩展名为".reg"的文件。

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER'Software'Microsoft'Office'12.0'Access'Security'Trusted Locations'Location2]
"Path"="C:''Program Files''Microsoft Office''Office12''ACCWIZ1''"
"Description"="Access default location: Wizard Databases"

双击此注册表文件进行测试。 它将在注册表中创建一个新条目。

使用安装程序保存 reg 文件,并使用安装程序运行它。也可以从 c# 代码执行此文件。

registry_hacks_reg