Vb.net 是否可以查看DataTable行中的下一个值?

Vb.net 是否可以查看DataTable行中的下一个值?,vb.net,Vb.net,我有一个包含4行的数据表。我想将第1行中一列中的值与第2行中的值进行比较。类似于此: For Each row As DataRow in drRows If row("column") <> row("column") 'I want the second row("column") to be the next row. 'do something else End If Next 将每行作为drRows中的数据行 如果行(“列”)行(“列”),我希望第二行(

我有一个包含4行的数据表。我想将第1行中一列中的值与第2行中的值进行比较。类似于此:

For Each row As DataRow in drRows
  If row("column") <> row("column") 'I want the second row("column") to be the next row.
     'do something else
  End If
Next
将每行作为drRows中的数据行
如果行(“列”)行(“列”),我希望第二行(“列”)是下一行。
“做点别的吧
如果结束
下一个

您始终可以访问带有索引()的
数据行

对于i As Integer=0到tbl.Rows.Count-1
作为数据行的Dim行=tbl.行(i)
如果我tbl.Rows.Count-1,那么
Dim nextRow As DataRow=tbl(i+1)
如果行(“列”)等于(下一行(“列”),则
“做点什么”
如果结束
如果结束
下一个

假设您有下表:

A B C D
1   2    3   4
5   6    7   8 
9   10   11  12
12  12   13  14
对于i As Integer=0到dt.Rows.Count-2
如果dt.Rows(i)(“ColName”)dt.Rows(i+1)(“ColName”),则
“做点什么
如果结束
下一个

您可以跟踪最后一项:

Dim last As DataRow = Nothing

For Each row As DataRow In drRows
    If last IsNot Nothing Then
        ' Compare last with row
    End If

    last = row
Next

您可以使用索引器访问
drRows
。这是唯一的方法吗?因为我对每个都使用了,我想我必须检查我是否没有超过索引值,对吗?您不必对每个
都使用
。您可以对一个索引执行
For
循环,但请确保不要超过。您介意提供一个示例吗,我是sti我有点困惑,因为我已经在做行(“列”),我怎么告诉它我不想要当前行(“列”),而是下一行。
对于I=0到drRows.Count-1
并使用
行(I)
行(I+1)
我正在尝试,但它说Class System.Data.DataTable无法索引,因为它没有默认属性。为什么不循环到
tbl.Rows.Count-2
而不是每次都进行检查?@minitech-这不会错过最后一行吗。@Xaisoft:会的,但最后一行之后没有行可与之比较。这就是为什么t它已经有了…@minitech-好的,但在我的情况下,我仍然需要最后一行。这与我所拥有的最接近,但需要一些帮助来理解它。基本上,当我通过Foreach时,我想比较当前行和下一行,如果当前行与下一行不同,我想更新其他行和列中的一行。看起来您正在比较当前行和上一行,我想比较当前行和下一行。@Xaisoft:您可以比较这两行,对吗?
last
将是最后一行,
row
将是当前行,每次都是。如果您需要更改另一行,可以使用
drRows.rows(indexOfYourRow)
按索引访问另一行。@minitech:我想它会错过最后一行检查修订历史记录,您的C#代码几乎相同。
For i As Integer = 0 To dt.Rows.Count - 2
   If dt.Rows(i)("ColName") <> dt.Rows(i + 1)("ColName") Then    
       'Do something
   End If
Next
Dim last As DataRow = Nothing

For Each row As DataRow In drRows
    If last IsNot Nothing Then
        ' Compare last with row
    End If

    last = row
Next