【问题标题】:Multiple if statements in a for loopfor 循环中的多个 if 语句
【发布时间】:2014-02-20 04:45:34
【问题描述】:

请帮忙,下面是我在 Visual Basic 中的代码。

我的for 循环没有转到第二个if 条件。它只检查第一个。我在这里错过了什么?

谢谢!

If Not dsMarketingOrdIDs Is Nothing Then
    For i = 0 To dsMarketingOrdIDs.Tables(0).Rows.Count - 1
        If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 5 Then
            If Not objALUtil.CheckPermission("KBAUTHORXTREMESUPPORT") Then
                blnKbAuthorXtremeSupport = True
            End If
            If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 152 Then
                If Not objALUtil.CheckPermission("KBAUTHORXTREMEPORTAL") Then
                    blnKbAuthorXtremePortal = True

                End If
            End If
        End If
    Next
End If

【问题讨论】:

    标签: vb.net loops if-statement for-loop


    【解决方案1】:

    应该是这样的:

    If Not dsMarketingOrdIDs Is Nothing Then
        For i = 0 To dsMarketingOrdIDs.Tables(0).Rows.Count - 1
            If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 5 Then
                If Not objALUtil.CheckPermission("KBAUTHORXTREMESUPPORT") Then
                    blnKbAuthorXtremeSupport = True
                End If
            End If
            If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 152 Then
                If Not objALUtil.CheckPermission("KBAUTHORXTREMEPORTAL") Then
                    blnKbAuthorXtremePortal = True
                End If
            End If
        Next
    End If
    

    或者更简单:

    If Not dsMarketingOrdIDs Is Nothing Then
        For i = 0 To dsMarketingOrdIDs.Tables(0).Rows.Count - 1
            blnKbAuthorXtremePortal = Not objALUtil.CheckPermission("KBAUTHORXTREMESUPPORT") _
                AndAlso (dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 5 OrElse dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 152)
        Next
    End If
    

    【讨论】:

      【解决方案2】:

      你试过 else if 吗?

      If Not dsMarketingOrdIDs Is Nothing Then
          For i = 0 To dsMarketingOrdIDs.Tables(0).Rows.Count - 1
              If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 5 Then
                  If Not objALUtil.CheckPermission("KBAUTHORXTREMESUPPORT") Then
                      blnKbAuthorXtremeSupport = True
                  Else If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 152 Then
                      If Not objALUtil.CheckPermission("KBAUTHORXTREMEPORTAL") Then
                          blnKbAuthorXtremePortal = True
                      End If
                  End If
              End If
          Next
      End If
      

      另外,你的 MARKETING_ORG_ID 怎么可能同时是 5 和 152??

      dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 5

      dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 152

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-16
        • 2019-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多