我解决了,最后还是选用双层遍历的方法,关系的方法我没实现,出了个错。不知道谁实现了?share一下 Private Function UniqueDS(ByVal ds As DataSet, ByVal ds2 As DataSet) As DataSet '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '双层遍历检查,去掉重复的行 Dim drs As New ArrayList For Each dr2 In ds2.Tables(0).Rows For Each dr In ds.Tables(0).Rows If dr.Item(0) = dr2.Item(0) Then drs.Add(dr2) End If Next Next Dim i As Int32 For i = 0 To drs.Count - 1 ds2.Tables(0).Rows.Remove(drs.Item(i)) Next ds2.AcceptChanges() Return ds2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End Function
DataTable myTable = new DataTable();
DataColumn myCol1 = myTable.Columns.Add("Column1");
DataColumn myCol2 = myTable.Columns.Add("Column2");
myTable.ChildRelations.Add("New Relation", myCol1, myCol2);
给两个DataTable 添加Relation,然后根据Relation来判断是否存在关联的纪录,有就将其中一个Table中的记录删除,然后在用DataSet.Merge()来合并;
最好能不遍历rows
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'双层遍历检查,去掉重复的行
Dim drs As New ArrayList
For Each dr2 In ds2.Tables(0).Rows
For Each dr In ds.Tables(0).Rows
If dr.Item(0) = dr2.Item(0) Then
drs.Add(dr2)
End If
Next
Next Dim i As Int32
For i = 0 To drs.Count - 1
ds2.Tables(0).Rows.Remove(drs.Item(i))
Next
ds2.AcceptChanges()
Return ds2
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Function