В настоящее время я использую эту библиотеку SQLite для своего консольного приложения: http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki - что до сих пор было выполнено с запросами SELECT, но выполнение этого INSERT вызывает у меня проблемы, которые у меня нет нашел решение для.System.Data.SQLite lock/sharing conflict
Я предполагаю, что код может быть переработан, но я не вижу, как это сделать?
Код
public string NewChannel(string _channel)
{
SQLiteConnection m_dbConnection = new SQLiteConnection(m_connection);
using (var cmd = m_dbConnection.CreateCommand())
{
m_dbConnection.Open();
cmd.CommandText = "INSERT INTO channels (name) VALUES (@name)";
cmd.Parameters.AddWithValue("@name", _channel);
try
{
int result = cmd.ExecuteNonQuery();
return "New channel added: " + _channel;
}
catch (Exception ex)
{
Console.WriteLine(ex.InnerException);
return null;
}
}
}
Ошибка
ошибка SQLite (10): замедленные 1375ms для SQLite блокировки/обмена конфликтов
ошибка (14): os_win.c: 34909: (5) winOpen (c: \ db.sqlite-journal) - Доступ запрещен. SQLite ошибка (14): os_win.c: 34909: (2)
winOpen (с: \ DB.SQLite-журнал) - Система не может найти файл
указан. Ошибка SQLite (14): не удается открыть файл в строке 34917 из
[118a3b3569] ошибка SQLite (14): заявление прерывается в 7: [INSERT INTO каналов (имя) VALUES (@name)]
Он пытается записать файл в корне диска 'c:'. Каким пользователем вы работаете в программе? Что это за программа? (командной строки, asp.net и т. д.) И имеет ли указанный пользователь права на запись в это место? –
Если вы пишете на корневом диске, они должны быть «Power User» или выше. В противном случае разрешение * Folder Permission * для этого пользователя должно быть установлено на «Чтение и запись». – Greg
Но почему он пишет новый файл? Запуск визуальной студии с помощью администратора. – Michael