我在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();
}
答案 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
文件夹