我有一个数据表,我一直在清理,我把值放入其中。因此,一旦在执行时,表中的数据就像这样
1211 A B C
1212 D E F
我有一个数据表dt_new并添加这两行。(因为第一列是不同的)。 有时数据会像这样结束
1213 I J K
1213 L M N
在这种情况下,我想不要将任何行添加到我的dt_new中。(因为两行的第一列相同) 我该怎么做呢?看起来很简单,但我最终得到了不同的结果。我正在检查迭代表并检查第一列但没有得到结果。 如果您需要更多信息,请询问。谢谢
For Each drTempRow As DataRow In dtTemp.Rows
Dim intCounter As Integer = 0
Dim intCounterEqual As Integer = 0
For Each drInnerRow As DataRow In dtTemp.Rows
If drTempRow("CustomerID") <> drInnerRow("CustomerID") Then
intCounter += 1
Else
intCounterEqual += 1
End If
Next
If intCounterEqual = 1 AndAlso intCounter <> dtTemp.Rows.Count - 1 Then
Dim drNewRow As DataRow = dt_new.NewRow()
drNewRow.ItemArray = drTempRow.ItemArray
dt_new.Rows.Add(drNewRow)
End If
Next
答案 0 :(得分:0)
你可以通过这种方式实现它而不需要嵌套循环:
请记住:在使用此代码之前,您必须先按dtTemp
CustomerID
排序。
Dim dt_new As DataTable = dtTemp.Clone()
Dim previousId As String = ""
For Each drTempRow As DataRow In dtTemp.Rows
If Not drTempRow("CustomerID").ToString().Equals(previousId) Then
dt_new.ImportRow(drTempRow)
End If
previousId = drTempRow("CustomerID").ToString()
Next