2010-09-10 100 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