我目前正在从事数据库挖掘程序从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