Здравствуйте
Возникла непонятная для меня ситуация. Обычная SQLite БД. Вставка работала в принципе нормально. Пять дней назад появилась непонятная тенденция - после перезагрузки ПК БД позволяет сделать 1-2 вставки, после чего любые попытки приводят к ошибке "БД заблокирована".
public static void ExecuteSqlTransaction(string Zapros)
{
string dbFileName = @"res\db\def.db";
using (SQLiteConnection connection = new SQLiteConnection("Data Source=" + dbFileName + ";mode=Exclusive;datetimeformat=CurrentCulture"))
{
connection.Open();
//string Zapros = "insert into Def_LMSZ (guid, id_anketa, guid_msz) " +
// "values ('" + new_guid + "','" + Perem.id_anketa + "','" + guid_LMSZ + "')";
// где new_guid - новый гуид
// Perem.id_anketa - номер
// guid_LMSZ - гуид из другой таблицы
using (SQLiteTransaction dbTrans = connection.BeginTransaction())
{
using (SQLiteCommand cmd = connection.CreateCommand())
{
cmd.CommandText = Zapros;
cmd.ExecuteNonQuery();
}
try
{
dbTrans.Commit();
}
catch
{
MessageBox.Show("Жопа какая то!");
}
}
}
}
Уже пробовал по всякому, MSDN перерыл весь. Киберфорум - аналогично. В Гугле решений не так уж и много по данному вопросу. Пробовал транзакциями. Пробовал с общим единым коннектом для всего проекта. Переустанавливал драйвер SQLite. Пересоздавал БД и отдельные таблицы.
Причем через шелл данный запрос (INSERT) выполняется без проблем и любое неограниченное количество раз, без ощутимой блокировки БД (несколько миллисекунд, как и должно быть).
Запрос один. Никаких циклов нет.
Мыслей у меня уже тоже. Помогите...