我这里有一个表单加载子例程,问题是程序执行第一个(即LoadProgrammes()
),然后跳过子程序的其余部分。子程序LoadProgrammes()
有一些东西可以使“Form Load”的其余部分不被调用。
ListActiveClasses()
也是如此。仅正确调用DisplayGroups()
并调用下一行代码。
我真的不知道为什么,找到一个谷歌解决方案是非常困难的。提前感谢任何可以提供帮助的人。
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
答案 0 :(得分:2)
我所看到的是,在某些事件处理程序中(可能就像你的Form.Load处理程序一样),执行过程中抛出的任何异常都会被吞下并被忽略。很可能你在OleDb代码中遇到了一些异常,导致它纾困。
我建议使用Try...Catch block包装所有_Load子例程,然后手动打印例外,或者调用Debugger.Break。
您是否尝试过单步执行代码?我建议你在frmEnroll_Load
的开头设置一个断点,然后开始逐步推进,直到某些东西爆炸,或者代码才会继续(如果异常被吞下,你就会看到这个。)
相关问题/页面: