2010-09-10 51 views
0
_CheckPayees = ds.Tables("Payees") 

_CheckPayees是一个DataTable变量。用上面的代码设置后,我想通过它并从中删除重复的行。尽管这些行必须完全相同,但如果两列具有匹配的值,但另一列不匹配,那么这不被视为一个愚蠢的行为。从DataTable中删除重复行

有没有简单的方法来做到这一点?

回答

0

没关系....这个工程。

我讨厌回答我自己的问题,但...我想它我被困在某些东西一段时间,然后找到它,这还没有答案,我会发布我的,因为其他人可能需要它。

Private Function EliminateDuplicates(ByVal dt As DataTable) As DataTable 
      Dim ssort As String = "" 
      Dim col As DataColumn 
      Dim scol As DataColumn 
      For Each scol In dt.Columns 
       If ssort <> "" Then ssort &= "," 
       ssort &= scol.ColumnName 
      Next 

      dt.DefaultView.Sort = ssort 
      Dim i As Integer, bEquals As Boolean, c As Integer, ccount As Integer 
      ccount = dt.Columns.Count 
      For i = dt.Rows.Count - 1 To 1 Step -1 
       bEquals = True 
       For c = 0 To ccount - 1 
        If dt.DefaultView(i)(c).ToString() <> dt.DefaultView(i - 1)(c).ToString() Then 
         bEquals = False 
         Exit For 
        End If 
       Next c 

       If bEquals Then 
        dt.DefaultView(i).Delete() 
       End If 
      Next 

      Return dt 

     End Function