我创建了一个在其后端具有访问权限的Windows应用程序。问题是当我安装它时显示操作必须使用可更新的查询当我尝试插入或更新操作....之后我更改了访问数据库所在的文件夹的权限。现在它工作正常。现在的问题是我安装它的每台计算机我需要更改程序文件中数据库文件夹的写权限。有没有任何解决方案,我可以在设置创建时设置我的文件夹的权限。或任何其他你知道的解决方案.....提前感谢
答案 0 :(得分:1)
请勿将数据库放入程序文件夹中 在Win7或Vista等最新操作系统中,出于安全原因,此文件夹是只读的。
最佳位置是枚举SpecialFolder.ApplicationData
标识的文件夹
你可以通过以下方式获得物理路径:
string commonAppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
在此路径中,您应该为应用程序提供专用路径。
string myDataPath = Path.Combine(commonAppData, "MyApplicationDataFolder");
只有当应用程序不被安装软件的用户使用时,此方案才有用。如果您需要多用户访问数据库,则可以自己创建本地磁盘或网络共享中的文件夹,每个用户都可以访问该数据库。
通常,将数据库后端放置在用户计算机或网络共享中的工作保留给安装工具。市场上有许多免费和付费的工具。我不知道你使用哪种工具,我不能推荐一种或另一种。但是,当您选择/使用一个时,您应检查是否存在这些基本功能:
如果部署工具按预期工作,您不需要在应用程序中执行任何操作,则从配置文件中读取connectionstring并打开数据库。
答案 1 :(得分: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#代码执行此文件。