【问题标题】: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