我有一个数据表,其查询被分组,因此我的所有记录和下一个记录都包含相关记录。但有些情况下,下一条记录可能与之前的记录无关。
我的情景:
数据包含两条相关记录,其中第一条记录包含用户的入住日期和时间,下一条记录包含用户超时日期和时间。
我的任务是检测用户的进入和超时情况并进一步处理。
我想知道最好的方法是什么。
这是我目前的代码。
Dim i as Integer = 0
For Each ucdr in ucdt.Rows
if ucdr(i) = ucdr(i+1) Then
'Do something
End If
Next
然而'我'将永远在循环中改变,所以我想知道如何最好地修复这个循环?
答案 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