【发布时间】:2016-07-22 08:10:39
【问题描述】:
我在可以调用的方法中有一个“if”或“case”语句。 我有“标志”变量作为公共状态。它的循环/运行两次很疯狂,所以导致有重复的命令,在这种情况下,我在数据库上有重复的数据。
Public Sub compartment1(ByVal exec As Boolean)
Try
If exec = True Then
Select Case FlagMark
Case 1
Insert database execute command
Case 2
another command
End Select
ElseIf exec = False Then
End If
Catch ex As Exception
End Try
End Sub
这是我的按钮命令
Private Sub cmd_confirm_Click(sender As Object, e As EventArgs) Handles cmd_confirm.Click
If pCheck2.Checked = True Then
FlagMark = 1
compartment1(True)
End If
End Sub
方法“Compartment1”运行了两次,看起来像循环,所以我有重复的数据或单个命令的重复。可以只运行一次吗?
【问题讨论】:
-
是
FlagMarkShared?它不应该被共享,否则所有用户将相互覆盖这个标志。但除此之外,尚不清楚是什么导致了您的问题。您是否在方法中设置了一个断点以查看它是否被调用了两次?如果是这样,请查看调用堆栈以了解它的来源。 -
当然,“FlagMark”是一个公共类型的字符串变量
-
向我们展示 HTML 代码。
-
@TimSchmelter 我设置了一个断点,然后它运行了两次。首先,它的选中按钮功能然后转到'compartement1'方法然后执行。第二个方法执行后,它返回命令/按钮并再次运行'compartement1'方法,然后我有单个命令执行的副本。
-
请检查您是如何添加 EventHandler 的。它可能由于某种原因被触发了两次。您可能会尝试的另一个解决方案是添加一个边缘标志,如果您已经完成了一次隔间1,请关闭该标志,这样您就不会运行 2x
标签: asp.net vb.net if-statement select-case