![](/img/trans.png)
[英]Sql server compact for windows app using visual studio 2010
[英]Access to database file not allowed (SQL Server Compact) in Visual Studio 2010 C#
第一点:我相信这个问题已经在这里回答了,但是并不能解决我的问题。 我的名声还不到50分,因此我(尚未)对此问题发表评论。
当我的程序安装在没有管理员权限的计算机上时,会引发此错误
不允许访问数据库“ PayeeList.SDF”
在App Manifest中,我以管理员身份添加启动程序时,不会出现此问题,但是当我启动程序并要求管理员权限时,这有点烦人,我希望我的程序在没有管理员权限的情况下运行。
这些是我的文件安装属性和下面数据库的文件属性。
第二点:
如果我操作正确,请告知我。
关于Stackoverflow的原始问题的解决方案:
确保使用| DataDirectory | 在您的连接字符串中。 这是一个例子
connectionString =“ Data Source = | DataDirectory | MyDB.sdf”
如果我更改此设置,是否可以解决我的问题?
第三点:单击“确定”后,仍然出现此错误。
需要更多信息,请让我知道。
可能要考虑两件事:
安装目录 :没有管理员权限,Windows将不允许更改安装目录中的任何文件(“程序文件”或“程序文件(x86)”)。
您可以创建自己的目录并将数据库存储在:
用户目录\\ AppData \\ Roaming \\
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
当前登录用户可以访问它。
对于所有用户,您都可以使用:
C:\\ ProgramData
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
所有用户均可访问它。
ConnectionString:您可以将连接字符串存储在Global Static Property或变量中,以便可以在当前应用程序中轻松访问它。 您可以使用Application.StartupPath来获取当前应用程序目录。
或者,您可以在App.config文件中修改connectionstring:
您还可以使用代码设置dataDirectory路径:
string path =Application.StartupPath; // or Any Path
AppDomain.CurrentDomain.SetData("DataDirectory", path);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.