Vb.net 是否可以查看DataTable行中的下一个值?
我有一个包含4行的数据表。我想将第1行中一列中的值与第2行中的值进行比较。类似于此: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中的数据行 如果行(“列”)行(“列”),我希望第二行(
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