При использовании оболочки SQLite (версия 1.0.109.2) в MS Visual Studio 2015 время от времени я получаю следующее сообщение об отладке:
Исключение: «System.ObjectDisposedException» в
System.Data.SQLite.dll
Это на самом деле не генерирует никаких исключений в моей программе. Он продолжает работать.
В настоящее время я использую компоненты SQLite в одном классе, который обрабатывает несколько данных приложения. Взаимодействие SQLite заключено в закрытый метод, который будет вызываться через другой метод этого класса.
Что происходит так: когда код выполняется, после приблизительно 50 выполнений (да, я считаю это с помощью переменной) этого метода, 50 сообщений об ошибках отображаются в окне вывода отладки.
Итак, следующий пример кода подытожит мое использование объекта SQLite. Прямо сейчас это довольно статично.
Private Sub UpdateFoo()
' Create object variables
Dim objSQLite as New System.Data.SQLite.SQLiteConnection("Data Source=" & sSQLitePath & ";Version=3")
Dim objSQLiteCmd As New System.Data.SQLite.SQLiteCommand(objSQLite)
' Do some magic stuff with the database ...
' Trash the command object.
objSQLiteCmd.Dispose()
' Close DB connection and trash the SQLite object.
objSQLite.Close()
objSQLite.Dispose()
End Sub
Итак, что я не прав? Соединение SQLite закрывается до удаления объекта. Это должен быть правильный подход.