基于.Net语言的SQL Distinct 功能

  相信很多朋友都碰到了如下情况:
     1.从一张Table取数据是全部取出来的,没有用SQL Distinct功能。
     2.现在需求需要过滤掉重复的行,那就只能在代码里面处理相似的功能。

以我自己的例子是这样的,我从一张User表里面Select全部的数据,我现在需要绑定到一个DropDownList(用其中的UserName 和 UserID).
 下面是代码片段:
 
  Dim dtUser As  New DataTable("User")  
  Dim arrUser As New ArrayList  '用这个只是为了用其中的两个方法,下面会写到
  For i As Integer = 0 To  dtUser.Rows.Count - 1 
       arrUser.Add(dtUser.Rows(i)("UserID")) 
  Next
  arrUser.Sort()   '这个排序就留给大家了为啥要排序^_^
  
  Dim arrTarget As New ArrayList ' ^_^这个才是我们想要的
  For j As Integer = 0 To arrUser.Count -1 
       If  j = 0 Then
          arrTarget.Add(arrUser(0))
       Else
           For k As Integer = 0 To j -1 
                If arrUser(j).ToString <> arrUser(k).ToString Then
                   arrTarget.Add(arrUser(j))
                   Exit For  ' 这个很关键,不然就会让你瞪大眼睛,怎么回事^_^
                End If
           Next
       End If
  Next

  ...............省略若干DropDownList的代码,关键是上面嘛
  
  后来有个美女给了另外的方法,别人微软做好的函数为啥不用,这回我瞪大眼睛了
  For j As Integer = 0 To arrUser.Count - 1 
     If arrTarget.Contains(arrUser(j)) = False Then
        arrTarget.Add(arrUser(j))
     End If
  Next
哇!瞧瞧多么简洁(但是呢,我现在不在MS阵营呢,还是上面的思想好点!嘿嘿)
 
这只是实现了SQL Distinct的功能,现在新的问题出现了,我需要对DropDownList的TextField排序,也就是SQL Order By "UserName" DESC 这样的功能,这个问题留到下次再说啦(因为我也还没想好
  
  
    
 

posted @ 2008-08-28 13:13  逆天寒  阅读(562)  评论(0编辑  收藏  举报