ComboBox の AutocompleteCustomSource として SQLite データベースからのクエリを使用しています。また、別のスレッドでデータをロードしたい。私の LoadData メソッドは、直接呼び出された場合は正常に動作しますが、BackgroundWorker スレッドから呼び出された場合は失敗します。Specified cast is not valid
バックグラウンド スレッドから呼び出されると、その行で例外がスローされcsearch.AutoCompleteCustomSource.Add(hh("Taj"))
ます。以下は私のコードです:
Sub LoadData()
Dim connetionString As String
Dim cnn As SQLiteConnection
connetionString = "Data Source=" + Application.StartupPath + "\Mydatabase.db;"
cnn = New SQLiteConnection(connetionString)
cnn.Open()
Dim sqlComm88 As New SQLiteCommand("SELECT Taj FROM Taj_deu ", cnn)
Dim hh As SQLiteDataReader = sqlComm88.ExecuteReader()
While hh.Read()
csearch.AutoCompleteCustomSource.Add(hh("Taj"))
End While
End Sub
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Call loaddata()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
BackgroundWorker1.RunWorkerAsync()
End Sub