代码之家  ›  专栏  ›  技术社区  ›  Scott

从数据表中删除重复行

  •  0
  • Scott  · 技术社区  · 14 年前
    _CheckPayees = ds.Tables("Payees")
    

    1 回复  |  直到 14 年前
        1
  •  0
  •   Scott    14 年前

    没关系……这很管用。

    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