не удалось открыть базу данных - PullRequest
0 голосов
/ 22 сентября 2009

У меня есть приложение на c # в папке c: \ program files \ app \ я использую базу данных sqllite

мой код работает отлично при входе в систему через администратора Windows, если я изменил учетную запись пользователя окна на ограниченную, я не могу открыть свою базу данных

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

Ответы [ 3 ]

2 голосов
/ 22 сентября 2009

Каталог 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
0 голосов
/ 22 сентября 2009

Это потому, что пользователи без прав администратора не имеют права на запись в папку program files

0 голосов
/ 22 сентября 2009

Имеет ли пользователь без прав администратора права доступа write в каталоге, где вы установили SQLite? Потому что это может произойти, если вы используете файл журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...