如果条件导致异常。怎么纠正?

问题描述 投票:-1回答:1

我有以下代码:

For i = 0 To dt3.Rows.Count - 1

            If dt3.Rows(i).Item("tablename") <> oldtablename Then

                oldtablename = dt3.Rows(i).Item("tablename")

                *****SOME CODE HERE******

            Else

                *****SOME CODE HERE******
            End If


            If i = dt3.Rows.Count-1 Or oldtablename <> dt3.Rows(i + 1).Item("tablename") Then
                ''time to build up the query and execute it...
                query = query1 & query2 
                dtCDV = executequery(query)

            End If

        Next

最后一个IF导致异常,因为dt3.rows(i + 1)...大于行数到达最后一行。如果要在2种情况下执行条件,我需要最后一次:

1)如果我们在for循环的最后一次迭代2)如果oldtablename不同于下一行中包含的变量(如果下一行存在...)

怎么写得好呢?

谢谢

vb.net if-statement
1个回答
3
投票

您可以尝试以下解决方案,在最后一个OrElse条件下使用Or而不是if

For i As Integer = 0 To dt3.Rows.Count - 1

    If dt3.Rows(i)("tablename") <> oldtablename Then
        oldtablename = dt3.Rows(i)("tablename")

        'some code here
    Else

        'some code here
    End If

     If i = dt3.Rows.Count-1 OrElse oldtablename <> dt3.Rows(i + 1)("tablename") Then

         'time to build up the query and execute it...
         query = query1 & query2 
         dtCDV = executequery(query)
     End If
 Next

在这种情况下,只有当条件的左边部分(oldtablename <> dt3.Rows(i + 1)("tablename"))是i = dt3.Rows.Count-1时才评估条件的右边部分(False)。

© www.soinside.com 2019 - 2024. All rights reserved.