我目前正在從事數據庫挖掘程序從sqlite數據庫中提取數據並填充表單。這需要從幾張不同的表中同時提取幾種類型的數據,而且似乎需要大量資源。有沒有更好的方法來解決這個問題?我應該使用後臺工作來運行sql查詢嗎?我正在運行多個SQLiteCommand.ExecuteReader實例,是否可以避免這種情況?vb.net - sqlite - 在一個連接中選擇多個值
代碼:
Public Shared Sub SQLInq()
'Database Information
Dim connection As String = "Data Source=" & _Compression.path
Dim SQLConn As New SQLiteConnection(connection)
Dim SQLcmd As New SQLiteCommand(SQLConn)
Dim SQLdr As SQLiteDataReader
'Connect to Database
SQLConn.Open()
SQLcmd.Connection = SQLConn
'Run query
SQLcmd.CommandText = "Select * FROM FsFileVersion WHERE FileDescription_LTH = 'filea' LIMIT 1;"
SQLdr = SQLcmd.ExecuteReader()
While SQLdr.Read()
fileaVrsn = (SQLdr.GetString(SQLdr.GetOrdinal("FileVersion_LTH")))
End While
SQLdr.Close()
'Run query
SQLcmd.CommandText = "Select * FROM FsFileVersion WHERE FileDescription_LTH = 'fileb' LIMIT 1;"
SQLdr = SQLcmd.ExecuteReader()
While SQLdr.Read()
filebVrsn = (SQLdr.GetString(SQLdr.GetOrdinal("FileVersion_LTH")))
End While
SQLdr.Close()
'Close connection
SQLConn.Close()
'Revert cursor wait to arror
Application.Current.MainWindow.Cursor = Cursors.Arrow
End Sub
不知道你的問題是什麼。如果它鎖定了UI,那麼是的,使用BackgroundWorker。 – LarsTech
@LarsTech有沒有更好的方法來解決這個問題?我應該使用後臺工作來運行sql查詢嗎?我正在運行多個SQLiteCommand.ExecuteReader實例,是否可以避免這種情況?我想最大的問題是可以在一個執行讀取器中運行多個命令,而不是多個執行讀取器? – GamerJ5
不知道我明白爲什麼有多個實例會出錯。你能避免它嗎?當然。爲連接,命令和讀者使用「使用...最終使用」格式。 – LarsTech