0

ここにフォーム ロード サブルーチンがありますが、問題は、プログラムが最初のサブルーチン (つまり、LoadProgrammes()) を実行し、残りのサブルーチンをスキップすることです。LoadProgrammes()「Form Load」の残りの部分が呼び出されないようにするサブルーチンについて何かがあります。

についても同様ですListActiveClasses()。OnlyDisplayGroups()が適切に呼び出され、次のコード行が呼び出されます。

文字通り理由がわかりません.Googleのソリューションを見つけるのは非常に困難です. 助けてくれる人に前もって感謝します。

Private Sub frmEnroll_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    LoadProgrammes()
    ListActiveClasses()
    DisplayGroups()

End Sub

Private Sub LoadProgrammes()
    Dim strLoadSQL As String
    Dim dsLoad As New DataSet
    Dim daLoad As OleDb.OleDbDataAdapter

    Using con As New OleDbConnection(My.Settings.ConnectionPath)

        strLoadSQL = "SELECT Programme FROM Programmes"
        daLoad = New OleDb.OleDbDataAdapter(strLoadSQL, con)
        daLoad.Fill(dsLoad, "LoadProgrammes")

        'Add items to the combobox
        For i = 0 To dsLoad.Tables("LoadProgrammes").Rows.Count
            cmbProgramme.Items.Add(dsLoad.Tables("LoadProgrammes").Rows(i).Item(0))
        Next

    End Using
End Sub
4

1 に答える 1

2

私が見たのは、一部のイベント ハンドラー (おそらく Form.Load ハンドラーのようなもの) では、実行中にスローされた例外は単に飲み込まれ、無視されるということです。ほとんどの場合、OleDb コードで何らかの例外が発生しており、それが原因で問題が解決しています。

すべての _Load サブルーチンをTry...Catch ブロックでラップし、手動で例外を出力するか、Debugger.Breakを呼び出すことをお勧めします。

コードをステップ実行してみましたか? の先頭にブレークポイントを設定し、frmEnroll_Load何かが爆発するまでステップスルーを開始するか、コードが続行することをお勧めします (これは、例外が飲み込まれた場合に表示されるものです)。


関連する質問/ページ:

于 2012-07-26T04:15:19.323 に答える