2016-07-05 111 views
0

第一点:我相信这个问题已经被回答here但它不能解决我的问题。由于我的声望低于50分,我还没有被允许评论这个问题。在Visual Studio 2010中不允许访问数据库文件(SQL Server Compact)C#

当我的程序安装在没有管理员权限的计算机上,它抛出这个错误

访问数据库“PayeeList.SDF”不允许

当应用清单中,我以管理员身份添加启动程序,这个问题没有出现,但是当我启动我的程序并要求管理员权限时,有点烦人,我希望我的程序在没有管理员权限的情况下运行。

这些是我的数据库下面的文件安装属性和文件属性。

File Installation Properties of visual studio setup deployment.

Properties

观点二:

请让我知道如果我正确地做这个。

解决方案在#2原题:

请确保您使用| DataDirectory目录|在你的连接字符串中。下面是 一个例子

的connectionString = “数据源= | DataDirectory目录| MyDB.sdf”

如果我改变了将在解决我的问题?

enter image description here

It gives me this ERROR when I click OK.

第三点:当我点击OK我仍然得到这个错误。

需要更多的信息,请让我知道。

回答

1

有可能是要考虑两件事情:

  1. 安装目录: 没有管理员权限,Windows将不允许更改安装目录中的文件(程序文件或程序文件(x86)) 。

    您可以创建自己的目录,并存储数据库中:

    用户的目录\应用程序数据\漫游\

    Environment.GetFolderPath(Environment.SpecialFolder。ApplicationData)

    它可以被当前登录的用户访问。

    对于您可以使用所有用户:

    C:\ ProgramData

    Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

    它是所有用户访问。

  2. 的ConnectionString: 您可以存储在全球静态属性连接字符串或变量,以便它可以是当前应用程序内方便。 您可以使用Application.StartupPath来获取当前应用程序目录。

或者你可以修改你在App.config文件的connectionString:

Connection String

您还可以使用代码来设置DataDirectory目录路径:

string path =Application.StartupPath; // or Any Path 
AppDomain.CurrentDomain.SetData("DataDirectory", path); 
+0

他是我的连接字符串中app.config''我如何修改App.Config文件中的连接字符串?我要写什么代码? –

+0

对不起,这个问题似乎与我期待的不同,谢谢你的回答。我改变了我的异常设置,我发现,我正在读写程序文件夹,默认情况下是不允许的。我应该读/写应用程序文件夹中的文件,我会尝试一下。 –

相关问题