別のスレッドから呼び出すときにVB.NETロードDatagridviewが例外をスローしました

ravhirzldi

まず、私の英語が下手で申し訳ありません。

私の問題は、別のスレッドからデータをロードすると、「オブジェクト参照がオブジェクトのインスタンスに設定されていない」という原因になります。

ここに私のコードがあります:

Private Sub GetData(ByVal startRecord As Integer, ByVal maxRecord As Integer)

    Dim ds As DataSet = New DataSet()
    Dim da As MySqlDataAdapter = New MySqlDataAdapter("select * from my_data", SqlCon)

    Try
        da.Fill(ds, startRecord, maxRecord, "my_data")
        ds.Tables("my_data").DefaultView.AllowNew = False
        dgv.DataSource = ds.Tables("my_data")

        For Each col As Object In dgv.Columns
            If TypeOf col Is DataGridViewCheckBoxColumn Then
                DirectCast(col, DataGridViewCheckBoxColumn).Visible = False
            ElseIf TypeOf col Is DataGridViewImageColumn Then
                DirectCast(col, DataGridViewImageColumn).Visible = False
            ElseIf TypeOf col Is DataGridViewTextBoxColumn Then

                Dim tbc As DataGridViewTextBoxColumn = CType(col, DataGridViewTextBoxColumn)
                If tbc.Name = "no" Then
                    tbc.Width = 40
                    tbc.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
                    tbc.HeaderText = "No"
                ElseIf tbc.Name = "ID" Then
                    tbc.Width = 110
                    tbc.HeaderText = "ID"
                ElseIf tbc.Name = "name" Then
                    tbc.Width = 290
                    tbc.HeaderText = "Name"
                ElseIf tbc.Name = "Address" Then
                    tbc.Width = 230
                    tbc.HeaderText = "Address"
                Else
                    tbc.Visible = False
                End If
            End If
        Next
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub

問題はここにあります:

dgv.DataSource = ds.Tables("my_data")

では、私のコードの何が問題になっているのでしょうか? マルチスレッドメソッドから呼び出すと常にエラーが発生しますが、ボタンを配置すると正常に機能します。

Idle_Mind

マルチスレッドメソッドから呼び出すと常にエラーが発生しますが、ボタンを配置すると正常に機能します。

GetData() メソッドは明らかにフォームに配置されていないため、「dgv」が誰なのかわかりません。1 つの解決策は、他のパラメーターと同じように DataGridView を渡すことです。

変化する:

Private Sub GetData(ByVal startRecord As Integer, ByVal maxRecord As Integer)

に:

Private Sub GetData(ByVal dgv As DataGridView, ByVal startRecord As Integer, ByVal maxRecord As Integer)

次に、(フォーム内の)呼び出しは次のようになります。

GetData(dgv, someValue, someOtherValue)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

「別のスレッドがオブジェクトを所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません」WPFの別のスレッドからUIコントロールを更新するときのエラー

分類Dev

同じクラスの別のメソッドからメソッドを呼び出すときにエラーが発生しました

分類Dev

スキャナーを複数回呼び出しているときに例外がスローされました。「スレッドのメインでの例外」java.util.NoSuchElementException:行が見つかりません

分類Dev

呼び出しのターゲットによって例外がスローされました-vb.net

分類Dev

別の例外がスローされました:NoSuchMethodError:メソッド '*'がnullで呼び出されました

分類Dev

別のRestAPIを同期的に呼び出しているときに、SpringRestTemplateが例外「Brokenpipe」をスローします

分類Dev

別のRestAPIを同期的に呼び出しているときに、SpringRestTemplateが例外「Brokenpipe」をスローします

分類Dev

スレッドプールを使用しているときに、boost :: asyncブロックへのネストされた呼び出しがなぜですか?

分類Dev

別のメソッドが呼び出されたときにメソッドを呼び出しますか?

分類Dev

Javaメソッドは、例外をスローしたときにJNI呼び出し元に何を返しますか?

分類Dev

非同期メソッドは、呼び出し時または待機時に例外をスローしますか?

分類Dev

別のクラスからメソッドを呼び出すときのNullPointerException

分類Dev

別のスレッドからconstraintLayout.remove()を呼び出すことはできません。

分類Dev

Xamarinビルドが失敗しました。UIスレッドでメソッド呼び出しをディスパッチしているときに例外がスローされました

分類Dev

initが例外をスローしたときにdeinitが呼び出されますか?

分類Dev

別のクラスメソッド内から呼び出されたときにメソッド呼び出しを適切にモックできない

分類Dev

JavaFX Node.snapshot()は、ワーカースレッドから呼び出されたときにスレッドをフリーズします、アイデア?

分類Dev

ソリューションエクスプローラーで参照として宣言せずに、別のプロジェクトからDLLメソッドを呼び出すまたは呼び出すにはどうすればよいですか?

分類Dev

リンクリストクラスが別のクラスメソッドから呼び出されたときにノードを挿入しない

分類Dev

XMLデータを変数にロード中に「呼び出しのターゲットによって例外がスローされました」

分類Dev

例外オブジェクトをcatchブロックでキャッチした後でも、呼び出しメソッドにスローできますか?

分類Dev

コードブロックの繰り返しを減らすためにFILEとSCREENへの出力のために呼び出すことができるテキストブロックを保持するBASH関数を作成できますか?

分類Dev

スレッド1からスレッド2を呼び出そうとしています(ループ内で5回)が、スレッド1のループが完了した後にのみスレッド2の実行が開始されます

分類Dev

別のクラスからメソッドを呼び出すことで、sqliteテーブルに新しい列を動的に追加できますか?

分類Dev

ClassCast例外:スーパークラスメソッドの呼び出し中にサブクラス実装が例外をスローします

分類Dev

C#コードから呼び出されたときに例外をスローするクエリ

分類Dev

別のシートからサブが呼び出されたときに400がスローされます

分類Dev

シグナルが別のスレッドからスロットを呼び出していません

分類Dev

例外をスローするメソッドを呼び出そうとしたときにforループが実行されないように拡張

Related 関連記事

  1. 1

    「別のスレッドがオブジェクトを所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません」WPFの別のスレッドからUIコントロールを更新するときのエラー

  2. 2

    同じクラスの別のメソッドからメソッドを呼び出すときにエラーが発生しました

  3. 3

    スキャナーを複数回呼び出しているときに例外がスローされました。「スレッドのメインでの例外」java.util.NoSuchElementException:行が見つかりません

  4. 4

    呼び出しのターゲットによって例外がスローされました-vb.net

  5. 5

    別の例外がスローされました:NoSuchMethodError:メソッド '*'がnullで呼び出されました

  6. 6

    別のRestAPIを同期的に呼び出しているときに、SpringRestTemplateが例外「Brokenpipe」をスローします

  7. 7

    別のRestAPIを同期的に呼び出しているときに、SpringRestTemplateが例外「Brokenpipe」をスローします

  8. 8

    スレッドプールを使用しているときに、boost :: asyncブロックへのネストされた呼び出しがなぜですか?

  9. 9

    別のメソッドが呼び出されたときにメソッドを呼び出しますか?

  10. 10

    Javaメソッドは、例外をスローしたときにJNI呼び出し元に何を返しますか?

  11. 11

    非同期メソッドは、呼び出し時または待機時に例外をスローしますか?

  12. 12

    別のクラスからメソッドを呼び出すときのNullPointerException

  13. 13

    別のスレッドからconstraintLayout.remove()を呼び出すことはできません。

  14. 14

    Xamarinビルドが失敗しました。UIスレッドでメソッド呼び出しをディスパッチしているときに例外がスローされました

  15. 15

    initが例外をスローしたときにdeinitが呼び出されますか?

  16. 16

    別のクラスメソッド内から呼び出されたときにメソッド呼び出しを適切にモックできない

  17. 17

    JavaFX Node.snapshot()は、ワーカースレッドから呼び出されたときにスレッドをフリーズします、アイデア?

  18. 18

    ソリューションエクスプローラーで参照として宣言せずに、別のプロジェクトからDLLメソッドを呼び出すまたは呼び出すにはどうすればよいですか?

  19. 19

    リンクリストクラスが別のクラスメソッドから呼び出されたときにノードを挿入しない

  20. 20

    XMLデータを変数にロード中に「呼び出しのターゲットによって例外がスローされました」

  21. 21

    例外オブジェクトをcatchブロックでキャッチした後でも、呼び出しメソッドにスローできますか?

  22. 22

    コードブロックの繰り返しを減らすためにFILEとSCREENへの出力のために呼び出すことができるテキストブロックを保持するBASH関数を作成できますか?

  23. 23

    スレッド1からスレッド2を呼び出そうとしています(ループ内で5回)が、スレッド1のループが完了した後にのみスレッド2の実行が開始されます

  24. 24

    別のクラスからメソッドを呼び出すことで、sqliteテーブルに新しい列を動的に追加できますか?

  25. 25

    ClassCast例外:スーパークラスメソッドの呼び出し中にサブクラス実装が例外をスローします

  26. 26

    C#コードから呼び出されたときに例外をスローするクエリ

  27. 27

    別のシートからサブが呼び出されたときに400がスローされます

  28. 28

    シグナルが別のスレッドからスロットを呼び出していません

  29. 29

    例外をスローするメソッドを呼び出そうとしたときにforループが実行されないように拡張

ホットタグ

アーカイブ