クエリが長時間実行され、UI操作が実行されたときに、Windowsアプリケーションが「応答しない状態」になりました。だから私はスレッディングのコンセプトに行きました。ただし、Thread.start()メソッド内でデータベース操作を実行する場合。「Windowsアプリケーションが動作を停止しました」などのエラーが発生します
私のコード:
Dim Newthread As New Thread(AddressOf test)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CONNECT_STRING = "Provider=IBMDADB2.DB2COPY1;Password=pwd;Persist Security Info=True;User ID="";Data Source="";dbalias="";"
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
strSQL = "query"
Newthread.Start(strSQL)
End Sub
Function test(ByVal strSQL As String)
connection = New OleDbConnection(CON_STRING)
connection.Open()
Dim selectCMD As OleDbCommand = New OleDbCommand(strSQL, connection)
Dim custDA As OleDbDataAdapter = New OleDbDataAdapter
custDA.SelectCommand = selectCMD
selectCMD.CommandTimeout = 0
Dim custDS As DataSet = New DataSet()
custDA.Fill(custDS)
Dim chk As New DataGridViewCheckBoxColumn()
DataGridView1.Columns.Add(chk)
chk.HeaderText = "Select Row"
chk.Name = "Select row"
DataGridView1.DataSource = custDS.Tables(0)
DataGridView1.Refresh()
End Function
'custDA.Fill(custDS) 'の行でエラーが発生しています
エラー-Windowsアプリケーションが動作を停止しました
誰かplsは私を助けることができます...