0

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

4

2 回答 2

1

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

最好的位置是 enum 标识的文件夹SpecialFolder.ApplicationData
您可以通过以下方式获得物理路径:

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

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

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

仅当应用程序的使用人数不超过安装该软件的用户时,这种情况才适用。如果您需要多用户访问您的数据库,那么您自己在本地磁盘或网络共享中创建一个文件夹,每个用户都可以访问该数据库。

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

  • 能够引用 Windows 环境中存在的特殊文件夹。(MyDocuments、ApplicationData 等...)
  • 能够在这些特殊文件夹中创建子文件夹 (MyApplicationData)
  • 能够创建网络共享或使用已经存在的网络共享
  • 能够更新存储连接字符串的配置文件(字符串替换)

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

于 2012-06-04T10:25:01.247 回答
0

在下面创建一个内容完全相同的文本文件,并保存扩展名为“.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

于 2012-06-04T10:29:15.427 回答