Я использую SQLite (через обертку .NET System.Data.SQLite
) как db моего приложения в течение длительного времени, и все было в порядке. Недавно я начал получать «База данных заблокирована». Мой DAL имеет несколько функций, каждый из которых читает и записывает и использует вновь созданное соединение в блоке using
. Когда я запускаю свои тесты, ошибка возникает на секундах вызов одной из этих функций. Но когда я отлаживаю и перемещаю строку за строкой, все в порядке. Мое приложение однопоточное.
У кого-то есть идея?
Большое спасибо.Странное поведение SQLite - иногда база данных заблокирована, но иногда нет
ответ
Кажется, что многие люди столкнулись с этой проблемой и не смогли ее решить, поэтому я напишу решение. В System.Data.SQLite
, начиная с версии 1.0.45.0, закрытие соединения не автоматически закрывает любые связанные объекты DbCommand
или DbDataReader
. Они должны быть закрыты явно. Поэтому соединение действительно не закрыто, чтобы эти объекты работали, но просто поставлены в очередь для закрытия после того, как все связанные объекты будут удалены. См. this.
В предыдущих версиях он вел себя так, как ожидалось, закрывая соединение, фактически закрывает его!
Решение: Утилизируйте все DbCommand
и DbDataReader
Явно, когда вы закончите с ними, как и вы с DbConnection
.
Запускаете ли вы консоль SQLite или SqliteAnalylitics exes в одно и то же время?
- 1. Sqlite заблокирована база данных
- 2. MinGW раздражающее поведение, иногда компилируется, иногда нет?
- 3. База данных Android SQLite заблокирована
- 4. SQLite занят, база данных заблокирована
- 5. База данных winjs sqlite заблокирована
- 6. Java - база данных SQLite заблокирована
- 7. база данных заблокирована в Sqlite
- 8. SQLite и «База данных заблокирована»
- 9. база данных ошибок sqlite заблокирована
- 10. SQlite: база данных заблокирована ошибка
- 11. Python SQLite: база данных заблокирована
- 12. База данных не отображена иногда
- 13. SQLite База данных заблокирована в sqlite admin
- 14. CFWriteStreamScheduleWithRunLoop иногда работает, иногда нет?
- 15. innerHTML иногда работает, иногда нет?
- 16. canvas.drawCircle иногда работает, иногда нет
- 17. document.write иногда работает, иногда нет
- 18. GCM иногда работает, иногда нет
- 19. Sqlite Заблокирована база данных при вставке данных
- 20. cURL иногда работает, иногда нет
- 21. база данных заблокирована error sqlite Ios
- 22. Иногда создается databse, но иногда это не
- 23. Linpack иногда запускается, иногда нет, но ничего не изменилось
- 24. Записанное видео иногда отображается, иногда нет
- 25. База данных iOS SQLite3 заблокирована
- 26. SQLite иногда не удается создать: память: база данных
- 27. SQlite: файл базы данных заблокирован (база данных заблокирована)
- 28. «База данных заблокирована» с SQLite и C#
- 29. Ошибка PDO Sqlite 5: заблокирована база данных
- 30. База данных SQLite заблокирована после отображения DataGrid
нет, работает тест MSTest. Используя его в .NET с библиотекой 'System.Data.SQLite'. – RoadBump