dataAdapter.Fill(dataSet) 无故停止执行
dataAdapter.Fill(dataSet) stops executing for no apparent reason
我最近在我自己的个人笔记本电脑(64 位)上为工作场所的现有系统开发 windows 表单(在 VB.NET 中)。一切正常,直到最近我得到了一台速度更快的笔记本电脑(i7 也是 64 位)。
所以我将项目文件夹直接从我的旧笔记本电脑复制到新笔记本电脑,安装了完全相同的 Visual Studio 和 MySQL 版本,然后开始工作。
前几个错误涉及 Crystal 报告针对与应用程序处理器不同的处理器的引用。经过一些研究后,我通过将目标 CPU 更改为 x64 迅速解决了这个问题,当时我遇到了表单的 [Design] View 没有加载的问题,因为 listViews 是 "never declared".在多次尝试清理和重建解决方案都没有成功之后,我最终通过将目标 CPU 更改为 AnyCPU.
来修复它
但是现在出现了一个更奇怪的问题。
为方便起见,这是我的代码外观的简化示例:
myConnection.ConnectionString = "Server=localhost;Database=myDB;Uid=root;Password=Root;"
myCommand = myConnection.CreateCommand()
myConnection.Open()
lstDealers.BeginUpdate()
With lstDealers
.View = View.Details
.Scrollable = True
.GridLines = True
.FullRowSelect = True
With .Columns
.Add("MONTH", 50, HorizontalAlignment.Left)
.Add("DEAL NUMBER", -2, HorizontalAlignment.Right)
.Add("DEALER", -2, HorizontalAlignment.Left)
.Add("CLIENT", -2, HorizontalAlignment.Left)
End With
End With
Dim myDataAdapter As MySqlDataAdapter = New MySqlDataAdapter
Dim myDataTable As DataTable
Dim myDataSet As DataSet = New DataSet
myCommand.CommandText = "SELECT MONTH, " +
"DEAL_NO, " +
"DEALER, " +
"CUSTOMER " +
"FROM deals " +
"WHERE MONTH >= '" + searchDate + "' AND HIDDEN = 0 " +
"ORDER BY MONTH, DEAL_NO"
myDataAdapter.SelectCommand = myCommand
myDataAdapter.Fill(myDataSet)
注意最后一行:
myDataAdapter.Fill(myDataSet)
正是在这里,执行简单地停止了。似乎没有错误或异常被抛出。当我单步执行代码时,它会在此处返回到数据不完整的表单视图,因为许多代码未通过该行到达。
我做了一些研究,(这个问题似乎再次与目标处理器有关)并且我尝试将目标 CPU 改回 x86 只是为了看看它是否会 运行 在那一行,但无济于事。
我什至尝试过:
myConnection.Close()
myDataAdapter.Fill(myDataSet)
myConnection.Open()
但还是什么都没有。
如有任何帮助,我们将不胜感激。
我最终发现执行只是停止的原因是因为未选择 异常设置 下的适当异常,即使在默认情况下也是如此。
我设法 Visual Studio 通过以下方式显示适当的例外情况:
Pressing ctrl + alt + E
Checking the Common Language Runtime Exceptions box in order to select all its subitems
我最近在我自己的个人笔记本电脑(64 位)上为工作场所的现有系统开发 windows 表单(在 VB.NET 中)。一切正常,直到最近我得到了一台速度更快的笔记本电脑(i7 也是 64 位)。
所以我将项目文件夹直接从我的旧笔记本电脑复制到新笔记本电脑,安装了完全相同的 Visual Studio 和 MySQL 版本,然后开始工作。
前几个错误涉及 Crystal 报告针对与应用程序处理器不同的处理器的引用。经过一些研究后,我通过将目标 CPU 更改为 x64 迅速解决了这个问题,当时我遇到了表单的 [Design] View 没有加载的问题,因为 listViews 是 "never declared".在多次尝试清理和重建解决方案都没有成功之后,我最终通过将目标 CPU 更改为 AnyCPU.
来修复它但是现在出现了一个更奇怪的问题。
为方便起见,这是我的代码外观的简化示例:
myConnection.ConnectionString = "Server=localhost;Database=myDB;Uid=root;Password=Root;"
myCommand = myConnection.CreateCommand()
myConnection.Open()
lstDealers.BeginUpdate()
With lstDealers
.View = View.Details
.Scrollable = True
.GridLines = True
.FullRowSelect = True
With .Columns
.Add("MONTH", 50, HorizontalAlignment.Left)
.Add("DEAL NUMBER", -2, HorizontalAlignment.Right)
.Add("DEALER", -2, HorizontalAlignment.Left)
.Add("CLIENT", -2, HorizontalAlignment.Left)
End With
End With
Dim myDataAdapter As MySqlDataAdapter = New MySqlDataAdapter
Dim myDataTable As DataTable
Dim myDataSet As DataSet = New DataSet
myCommand.CommandText = "SELECT MONTH, " +
"DEAL_NO, " +
"DEALER, " +
"CUSTOMER " +
"FROM deals " +
"WHERE MONTH >= '" + searchDate + "' AND HIDDEN = 0 " +
"ORDER BY MONTH, DEAL_NO"
myDataAdapter.SelectCommand = myCommand
myDataAdapter.Fill(myDataSet)
注意最后一行:
myDataAdapter.Fill(myDataSet)
正是在这里,执行简单地停止了。似乎没有错误或异常被抛出。当我单步执行代码时,它会在此处返回到数据不完整的表单视图,因为许多代码未通过该行到达。
我做了一些研究,(这个问题似乎再次与目标处理器有关)并且我尝试将目标 CPU 改回 x86 只是为了看看它是否会 运行 在那一行,但无济于事。
我什至尝试过:
myConnection.Close()
myDataAdapter.Fill(myDataSet)
myConnection.Open()
但还是什么都没有。
如有任何帮助,我们将不胜感激。
我最终发现执行只是停止的原因是因为未选择 异常设置 下的适当异常,即使在默认情况下也是如此。
我设法 Visual Studio 通过以下方式显示适当的例外情况:
Pressing ctrl + alt + E
Checking the Common Language Runtime Exceptions box in order to select all its subitems