【问题标题】:Why If statement is repeat for twice?为什么If语句重复两次?
【发布时间】: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”运行了两次,看起来像循环,所以我有重复的数据或单个命令的重复。可以只运行一次吗?

【问题讨论】:

  • FlagMark Shared?它不应该被共享,否则所有用户将相互覆盖这个标志。但除此之外,尚不清楚是什么导致了您的问题。您是否在方法中设置了一个断点以查看它是否被调用了两次?如果是这样,请查看调用堆栈以了解它的来源。
  • 当然,“FlagMark”是一个公共类型的字符串变量
  • 向我们展示 HTML 代码。
  • @TimSchmelter 我设置了一个断点,然后它运行了两次。首先,它的选中按钮功能然后转到'compartement1'方法然后执行。第二个方法执行后,它返回命令/按钮并再次运行'compartement1'方法,然后我有单个命令执行的副本。
  • 请检查您是如何添加 EventHandler 的。它可能由于某种原因被触发了两次。您可能会尝试的另一个解决方案是添加一个边缘标志,如果您已经完成了一次隔间1,请关闭该标志,这样您就不会运行 2x

标签: asp.net vb.net if-statement select-case


【解决方案1】:

解决了!在我用 ASP.Net 按钮替换给定 runat=server 属性的 html 按钮之后。 为什么如此不同,如果使用 ASP.NET 按钮,事件正在逐步正常运行 ifcase 语句,而使用带有 runnat=server 的 Html 按钮看起来像循环过程。即使具有与以下相同的属性配置:

CausesValidation =True EnableViewState=True

【讨论】:

    猜你喜欢
    • 2017-08-12
    • 1970-01-01
    • 2014-04-01
    • 2015-10-02
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多