无法打开数据库

时间:2009-09-22 11:57:52

标签: c# .net database sqlite

我在c:\ program files \ app \文件夹中有我的c#应用程序 我正在使用sqllite数据库

我的代码在通过Windows管理用户登录时工作正常,如果我将窗口用户帐户更改为限制,我无法打开我的数据库

public  void OpenDB()
{
 SQConnectionString = "Data Source=" + DBPath +";Pooling=true;FailIfMissing=false";
 con = new SQLiteConnection();
 con.ConnectionString = SQConnectionString;
 con.Open();
}

3 个答案:

答案 0 :(得分:2)

Program Files 目录绝对不是放置数据的正确位置...在Windows Vista和Seven上,除非应用程序以管理员身份运行,否则无法写入此目录。您应该将数据库放在 ProgramData 或用户的数据目录中。您可以使用Environment.GetFolderPath方法获取这些目录:

string userAppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
// On Vista and Seven, this is C:\Users\<username>\AppData\Roaming
// On XP, this is C:\Documents and Settings\<username>\Application Data

string commonAppData = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
// On Vista and Seven, this is C:\ProgramData
// On XP, this is C:\Documents and Settings\All Users\Application Data

答案 1 :(得分:0)

非管理员用户是否对安装SQLite的目录具有write权限?因为如果您使用日志文件可能会发生这种情况。

答案 2 :(得分:0)

这是因为非管理员用户没有program files文件夹

的写入权限