0
私はDataGridView内で表示するためにmySQLのデータを取得するBackGroundWorkerを持っています。 DoWorkイベントでVB.net BackGroundWorker DataGridViewのクロススレッド
connection()
Try
conn.Open()
Dim query As String
query = "SELECT column02 AS 'Company ID', column05 AS Lastname,
column06 AS Firstname, column07 AS Middlename,
column04 AS 'Contact No.', column13 AS 'Area'
FROM table01
WHERE column10 = '" & selectedAccount & "'
AND column18 = 'Yes'"
command = New MySqlCommand(query, conn)
dataAdapter.SelectCommand = command
dataAdapter.Fill(dataTable)
bSource.DataSource = dataTable
DataGridView_Accounts.DataSource = bSource
For i As Integer = 0 To dataTable.Rows.Count - 1
dataTable.Rows(i)("Company ID") = dataTable.Rows(i)("Company ID")
dataTable.Rows(i)("Lastname") = dataTable.Rows(i)("Lastname")
dataTable.Rows(i)("Firstname") = dataTable.Rows(i)("Firstname")
dataTable.Rows(i)("Middlename") = dataTable.Rows(i)("Middlename")
dataTable.Rows(i)("Contact No.") = dataTable.Rows(i)("Contact No.")
dataTable.Rows(i)("Area") = dataTable.Rows(i)("Area")
Next
conn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
conn.Dispose()
End Try
私のDataGridViewでは、クロススレッドに関するエラーが発生しています。
私は
DataGridView_Accounts.DataSource = bSource
For i As Integer = 0 To dataTable.Rows.Count - 1
dataTable.Rows(i)("Company ID") = dataTable.Rows(i)("Company ID")
dataTable.Rows(i)("Lastname") = dataTable.Rows(i)("Lastname")
dataTable.Rows(i)("Firstname") = dataTable.Rows(i)("Firstname")
dataTable.Rows(i)("Middlename") = dataTable.Rows(i)("Middlename")
dataTable.Rows(i)("Contact No.") = dataTable.Rows(i)("Contact No.")
dataTable.Rows(i)("Area") = dataTable.Rows(i)("Area")
Next
クロススレッディングについてのより多くのエラーはありませんRunWorkerCompletedイベントにこれを移動しようとしましたが、私は私のDataGridViewに結果を表示することはできません。データベースがいっぱいになっても空です。これは近い作業にあなたを取得する場合
ループは無意味です...行とフィールドの値を自分自身に割り当てます。 – MrGadget
バックグラウンド作業はデータを取得しています。これは 'Fill'の呼び出しによって行われます。その無駄なループを取り除く。 UIの更新はデータバインディングです。これは 'RunWorkerCompleted'イベントハンドラで行うべきです。 – jmcilhinney
My:SQLがスペースを許可しない限り、SQL: 'column02 AS 'Company ID''と' column04 AS' Contact No.''に2つの無効なカラム別名があります。 – MrGadget