VB.Net数据表循环建议

时间:2015-02-19 08:45:57

标签: vb.net ms-access

我有一个数据表,其查询被分组,因此我的所有记录和下一个记录都包含相关记录。但有些情况下,下一条记录可能与之前的记录无关。

我的情景:

数据包含两条相关记录,其中第一条记录包含用户的入住日期和时间,下一条记录包含用户超时日期和时间。

我的任务是检测用户的进入和超时情况并进一步处理。

我想知道最好的方法是什么。

这是我目前的代码。

Dim i as Integer = 0

For Each ucdr in ucdt.Rows
if ucdr(i) = ucdr(i+1) Then
'Do something 
End If
Next

然而'我'将永远在循环中改变,所以我想知道如何最好地修复这个循环?

1 个答案:

答案 0 :(得分:1)

据我所知,您想知道此行的UserTimeIn列是否包含与下一行UserTimeOut列相同的值。

您必须使用For循环通过row-index访问行:

For i As Int32 = 0 To ucdt.Rows.Count - 1
    Dim thisRow = ucdt.Rows(i)
    Dim nextRow = If(i = ucdt.Rows.Count - 1, Nothing, ucdt.Rows(i + 1))
    If nextRow IsNot Nothing Then
        Dim userTimeIn = thisRow.Field(Of Date)("UserTimeIn")
        Dim userTimeOut = nextRow.Field(Of Date)("UserTimeOut")
        If userTimeIn = userTimeOut Then
            ' do whatever you need to do '
        End If
    End If
Next