0
当我在调试模式下启动我的应用程序以试图找出为什么我没有收到任何返回的数据时,我设置了一个永远不会到达的断点。我在加载ReportViewer时调用此代码。为了测试我给它的9号返回数据的泛型列表...应用程序在调试时跳过代码,但不会点击断点?
performanceReportDataList = PerformanceReportData.GetPerformanceReportDataByMilestoneID(9)
rptViewer.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("dsPerformanceReportData", performanceReportDataList))
的第二行代码是从来没有击中。应用程序跳过方法中的其余代码,只是将ReportViewer加载完全空白。现在有一些幕后代码通过几层发生,因为第一行被调用来填充通用列表。我传递ID,创建一个命令对象并将它作为参数给它并调用一个存储过程。在数据库上运行相同的东西会返回数据就好,但这里是我的代码停止的地方....
Public Shared Function GetDataTableUsingReader(ByVal sql As String, Optional ByVal parameterList As List(Of DataParameter) = Nothing, Optional ByVal type As CmdType = CmdType.StoredProcedure) As DataTable
Dim cmd As OleDbCommand = CreateCommand(sql, parameterList, type)
Dim dt As New DataTable
Using cmd.Connection
cmd.Connection.Open()
dt.Load(cmd.ExecuteReader(CommandBehavior.CloseConnection)) ' Last Line Hit
End Using
Return dt
End Function
上面是我的DAL中的方法。它转到dt.Load(),然后不会触及任何其他代码行,它会跳回到应用程序并加载ReportViewer表单而没有数据。没有例外,没有任何东西。当我在大学时,我曾经见过像这样的事情发生在一位同学的身后,但是真的不记得他的问题是什么。任何人有任何想法?
也许把你的断点放在'跳过'发生之前的某个地方,然后从那里进入... –
那么试图填充通用列表的第一行我设置了一个断点,然后从那里开始,当我意识到它时没有达到我原来的断点。我一直走到dt.Load()这是它最后一行的最后一行。在那之后,我进入了脚步,它将控制权交还给GUI,并弹出窗体。 –
最后使用try catch。它可能会抛出一个你没有捕捉到的错误。 – Paparazzi