【发布时间】:2016-08-10 16:22:43
【问题描述】:
尝试在我的 vb.net 项目中打印报告时,我有一些代码来检查是否所有必填字段都已填写。如果没有填写,则会出现一个消息框来通知用户。当他们按下“确定”时,我需要程序停止执行代码以加载报告。目前,它陷入了一个无限循环,在那里它反复通过Try 函数和SELECT CASE。
需要改变什么来阻止这种情况?我无法弄清楚问题是什么,以及为什么以下代码部分一个接一个地循环
Try
Select Case checkwhat.ToUpper
Case "SUPPLIER"
If cmbSuppliers.Text.Trim = "" Then
MsgBox("Please select a supplier", MsgBoxStyle.OkOnly, "No Supplier Selected")
Return False
Exit Try
End If
Case "RB6B"
check("SUPPLIER")
If check("SUPPLIER") = True Then Else Exit Sub
createWorkTable("SUPPLIERS-TERRITORY-LS")
regReport("rTerritoryWTableCrosstabB.rpt", "", con, Me.MdiParent, cReport, True)
fillPms(cReport, "Sales by Territory by Supplier", "For " & cmbSuppliers.Text.Trim, "", "AOT02")
【问题讨论】:
-
缺少太多代码。供应商案例永远不会返回 true,您在返回 false 后尝试退出尝试。在 RB6B 案例中,您调用“供应商”检查,我只能假设这是我们正在查看的代码,这是永远不会等于 true 的相同代码......然后你只需退出 sub..跨度>
-
@ProGrammer 所以,在 Try 语句中我需要一个
Else Return True?
标签: vb.net try-catch infinite-loop select-case