2011-04-26 91 views
0

我在Form Load事件中有一些代码。它很好。但是当它从数据库中选择数据时,在那之后没有任何命令正在执行。没有任何错误,但它只是沉默。在语句后不执行的命令

我测试如下:

​​

请指教。 谢谢 Furqan

消息框一显示数据但不是消息框两。实际上,第二个消息框声明根本没有显示任何响应。

+0

您是否遇到异常? – Oded 2011-04-26 10:50:50

回答

1

这是64位操作系统上令人讨厌的问题。从表单的Load事件运行的代码中引发的任何异常都会被吞下而不会进行诊断。这是一个尚未解决的老问题,因为微软的DevDiv和Windows组织正互相指责。我的手指指向Windows组,但这也没有帮助。

两种基本的方式来解决这个问题:

  • 项目+属性,编译选项卡,向下滚动,高级编译选项,目标CPU选项从86更改为AnyCPU。这会禁用吞噬异常的Wow64仿真层。

  • 调试+例外,勾选“公共语言运行时例外”的投掷框。调试程序在引发异常时立即停止。

还要记住,使用OnLoad方法或Load事件的情况很少有必要。只有需要表单的大小或位置或句柄的代码才需要它。其他任何东西都属于表单的构造函数。 Load经常被用于VB6的时代错误,在设计师设计中将Load事件作为Form的默认事件。通过输入“Sub New”添加一个构造函数。

0

那么,看起来很明显,呼吁DsGetPprStatusfromEnrSummary.tblPaperEnrSummary永远不会返回;这意味着问题在于某处。

那么它是什么呢?我猜这是一个数据集,是吗?

但是你已经静态引用它,这是YuckyPooPoo(TM)恕我直言,因为它是一个复杂的神器,并且你已经渲染了所有引用它的不可分辨的东西,因此从根本上是不可测的!

0

在CodeProject

接收的答案在出现的对话框中,把蜱在每一个复选框,同时根据“时抛出”和“未处理”。按OK。 现在,当您通过调试器运行应用程序时,即使您有一个活动处理程序,它也会中断任何异常。这应该可以帮助你追踪问题。

问题已解决

+1

这不是一个答案,只是一种解决方法。它会再次以字节为单位。 – 2011-04-26 11:54:14