SQLite сохраняет базу данных заблокированной даже после закрытия соединения

используя провайдера System.Data.SQLite в приложении ASP.NET (framework 4.0). Вопрос яЯ сталкиваюсь с тем, что, когда я вставляю что-то в таблицу в базе данных SQLite, база данных блокируется и блокировка не выполняется.t освобождается даже после удаления соединения.

При попытке доступа к файлу возникает ошибка:Процесс не может получить доступ к файлуcatalog.sqlite» потому что он используется другим процессом ".

Мой код довольно прост, я открываю соединение, читаю некоторые данные из базы данных SQLServer, вставляю эти данные в SQLite (через SQLiteDataAdapter), а затем закрываю соединение и распоряжаюсь всем, чтобы быть на безопасной стороне. Но все же я получаю эту ошибку, когда пытаюсь заархивировать файл послеs заполняется данными.

Прочитайте всевозможные предложения здесь, в StackOverflow, но ни одно из них не помогло решить проблему (отключение антивируса, изменение модели транзакции, ожидание за несколько секунд до архивации файла, завершение всех вызовов вставки в транзакцию и т. д. Но никто не помог решить эту проблему.

Может бытьЧто-то особенное для ASP.NET (многопоточность является проблемой? Даже если яя тестирую его на машине разработки, где естьтолько один вызов этой функции и нет параллелизма?)

Как примечание, я попытался избежать DataTable и SQLiteDataAdapter и использовать только SQLiteCommand напрямую, и таким образом он работает очаровательно. Конечно, я могу продолжать строить свои запросы в виде строк вместо использования адаптеров данных, но я нахожу это немного неловким, когда есть 'Это основа, созданная для этого.

Ответы на вопрос(11)

Ваш ответ на вопрос