#vb.net #sqlite #freeze #sqldataadapter
#vb.net #sqlite #замораживание #sqldataadapter
Вопрос:
Я создал файл базы данных SQLite, перенеся схему таблицы, строки и т.д. Из экземпляра SQL Server в Azure. Я создал класс util для заполнения объекта DataSet с использованием объекта SQLiteDataAdapter, подключенного к базе данных SQLite, с помощью инструкции (Select * FROM Users). По какой-то причине я могу просто запустить программу чтения SQLite с помощью команды SQLiteCommand, и она возвращает запрошенные строки, которые я печатаю на консоли. Однако всякий раз, когда я пытаюсь выполнить адаптер.Fill(), похоже, что ничего не происходит, и весь код, который должен быть выполнен впоследствии (не зависит от чего-либо, выполняемого самим адаптером), просто перестает что-либо делать. Исключение НЕ возникает, оно просто останавливается…
Imports System.Data
Imports System.Data.SQLite
Imports System.Threading.Tasks
Public Class SqliteInit
Public Function getUserDataSet()
Dim connectionString As String = "Data Source=users1.db;Version=3;"
Dim mSQL As String = "SELECT * FROM UserProfile;"
Dim dataTable As New DataTable
Dim dataSet As New DataSet
dataSet.Tables.Add("UserProfile")
Try
If My.Computer.Network.IsAvailable Then
MsgBox(" Computer is connected to the internet")
Else
MsgBox(" Computer is NOT connected")
Dim SQLConn As New SQLite.SQLiteConnection(connectionString)
Dim SQLComm As New SQLite.SQLiteCommand(mSQL, SQLConn)
Dim adapter As New SQLiteDataAdapter(SQLComm)
SQLConn.Open()
adapter.Fill(dataSet, "UserProfile")
SQLConn.Close()
Console.WriteLine("Empty")
Return CType(dataSet, AzureDataSet)
End If
Catch ex As Exception
Return Nothing
End Try
Return Nothing
End Function
End Class
Кажется, что все другие варианты выполнения работают с этими определенными объектами, например, я проверил, правильно ли я обращаюсь к базе данных, превратив инструкцию в insert , и, конечно же, когда я выполнил SqlCommand .Без запроса, он добавил строку. Я также использовал SQLiteReader с оператором Select, и он успешно напечатал строки.
адаптер.Заполнение, похоже, единственное, что ломается.
Комментарии:
1. Вы уверены, что никаких исключений не возникло? Вы перехватываете все исключения. Кроме того, есть ли какая-либо конкретная причина, по которой вы не используете
Using
инструкции?2. Первоначально я использовал инструкции «using», затем изменил их впоследствии, думая, что это может быть причиной проблемы. В любом случае результат тот же. Спасибо, что указали, что он улавливает все исключения, я получил этот пример кода из руководства и даже еще не понял этого. Я попытаюсь распечатать исключение и трассировку стека и посмотреть, что это мне даст.
3. Я испытал то же самое.