Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.188.252.23] |
|
Сообщ.
#1
,
|
|
|
Пытаюсь удалить файл базы данных, пишет "Процесс не может получить доступ к файлу "mydb.sqlite", так как этот файл используется другим процессом."
Подскажите как решить эту проблему. private void button3_Click(object sender, EventArgs e) { using (var db = new SQLiteConnection("Data Source=mydb.sqlite; Version=3; Password=myPassword;", true)) { db.Open(); DataTable eritable = new DataTable(); eritable.Clear(); var cmd = @"CREATE TABLE tabel (par TEXT)"; SQLiteCommand command = new SQLiteCommand(cmd, db); command.ExecuteNonQuery(); db.Clone(); } } private void button4_Click(object sender, EventArgs e) { File.Delete("mydb.sqlite"); } |
Сообщ.
#2
,
|
|
|
Решение:
Спасибо Alexcei Shmakov Цитата Проблема была в том, что классSQLiteCommand тоже является классом, реализующим интерфейс IDisposable, но вызова метода этого не было, поэтому он не освобождал ресурсы подключения к БД. using (var db = new SQLiteConnection("Data Source=mydb.sqlite; Version=3; ", true)) { db.Open(); DataTable eritable = new DataTable(); eritable.Clear(); var cmd = @"CREATE TABLE tabel (par TEXT)"; using (SQLiteCommand command = new SQLiteCommand(cmd, db)) { command.ExecuteNonQuery(); } } File.Delete("mydb.sqlite"); |