Asp.Net : 实现一个 DataSet 或DataTable SELECT DISTINCT (字段唯一性)

 

         // 此方法将所选字段的唯一值复制到一个新的 DataTable 。 如果字段包含 NULL 值,目标表中的记录还包含 NULL 值 
         public  DataTable SelectDistinct( string  TableName, DataTable SourceTable,  string  FieldName)
        {
            DataTable dt 
=   new  DataTable(TableName);
            dt.Columns.Add(FieldName, SourceTable.Columns[FieldName].DataType);

            
object  LastValue  =   null ;
            
foreach  (DataRow dr  in  SourceTable.Select( "" , FieldName))
            {
                
if  (LastValue  ==   null   ||   ! (ColumnEqual(LastValue, dr[FieldName])))
                {
                    LastValue 
=  dr[FieldName];
                    dt.Rows.Add(
new   object [] { LastValue });
                }
            }
            
/// /if (ds != null)
            
/// /ds.Tables.Add(dt);
             return  dt;
        }
        
static   bool  ColumnEqual( object  A,  object  B)
        {           
            
if  (A  ==  DBNull.Value  &&  B  ==  DBNull.Value)    //    both   are   DBNull.Value   
                 return   true ;
            
if  (A  ==  DBNull.Value  ||  B  ==  DBNull.Value)    //    only   one   is   DBNull.Value   
                 return   false ;
            
return  (A.Equals(B));    //    value   type   standard   comparison   
        }

 

你可能感兴趣的:(Datatable)