修复Visual Studio 2019后调试跳过代码的问题求助
调试时ADP.Fill(Tbl)被跳过的解决思路
修复Visual Studio 2019后,调试时出现部分代码正常执行、部分被跳过的异常,推测是选项设置或环境问题导致。具体表现为:执行到ADP.Fill(Tbl)代码行时,程序未执行该行就直接返回调用该方法的窗体,涉及的代码如下:
Dim FName As String = "" With MainMenu.OpenFileDialog1 .DefaultExt = "xlsx" .Filter = "Excel files (*.xlsx)|*.xlsx" .InitialDirectory = My.Settings.XLPath If .ShowDialog = DialogResult.Cancel Then Exit Sub End If FName = .FileName My.Settings.XLPath = Replace(FName, .SafeFileName, "") My.Settings.Save() End With Dim Tbl As New DataTable Dim ShtName As String = "" Dim CN As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FName & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1""") CN.Open() Dim TblLst As DataTable = CN.GetSchema("Tables") If TblLst.Rows.Count > 0 Then ShtName = TblLst.Rows(0)("TABLE_NAME").ToString End If Dim ODBCmd As OleDbCommand = New OleDbCommand("Select * From [" & ShtName & "]", CN) Dim ADP As OleDbDataAdapter = New OleDbDataAdapter(ODBCmd) ADP.Fill(Tbl) Debug.WriteLine("Rows in Tbl: " & Tbl.Rows.Count) CN.Close() For Each Col As DataColumn In Tbl.Columns Debug.WriteLine(Col.ColumnName) Next
以下是可行的解决思路:
- 关闭"仅我的代码"调试选项:打开Visual Studio 2019的「工具」→「选项」→「调试」→「常规」,取消勾选「启用仅我的代码」。该选项会隐藏非用户编写的代码执行流程,若
ADP.Fill内部抛出异常,可能会被直接跳过,表现为代码未执行。 - 启用全异常捕获:点击「调试」→「窗口」→「异常设置」,勾选所有「公共语言运行时异常」。这样调试器会在任何异常抛出时暂停,能直接定位
Fill方法内部的错误原因。 - 匹配ACE驱动与项目位数:确认项目的平台目标(x86/x64)和已安装的Microsoft ACE OLEDB 12.0驱动位数一致。32位项目必须搭配32位驱动,64位项目搭配64位驱动,位数不匹配会导致
Fill操作静默失败。 - 添加异常捕获代码:在
ADP.Fill(Tbl)周围包裹Try-Catch块,捕获并输出异常详情,快速定位问题:
Try ADP.Fill(Tbl) Debug.WriteLine("Rows in Tbl: " & Tbl.Rows.Count) Catch ex As Exception Debug.WriteLine("Fill操作失败:" & ex.ToString()) End Try
- 重置VS调试配置:若怀疑是自定义设置导致的异常,通过「工具」→「导入和导出设置」→「重置所有设置」,恢复默认调试配置,排除设置干扰。
内容的提问来源于stack exchange,提问作者Larry Stinson
相关产品推荐
相关产品推荐

