如何去掉dataset中的重复行

 1建立一个DataSetHelper类(DataSetHelper.cs)

public   class  DataSetHelper
{
    
public DataSet ds;
    
public DataSetHelper(ref DataSet DataSet)
    
{
        ds 
= DataSet;
    }

    
public DataSetHelper()
    
{
        ds 
= null;
    }

    
private 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
    }

    
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;
    }

}
2 建立一个Web窗体,在page_load中写下面的代码
       DataSet ds;
        DataSetHelper dsHelper;
        ds 
=   new  DataSet();
        dsHelper 
=   new  DataSetHelper( ref  ds);

        
//  Create source table
        DataTable dt  =   new  DataTable( " Orders " );
        dt.Columns.Add(
" EmployeeID " , Type.GetType( " System.String " ));
        dt.Columns.Add(
" OrderID " , Type.GetType( " System.Int32 " ));
        dt.Columns.Add(
" Amount " , Type.GetType( " System.Decimal " ));

        dt.Rows.Add(
new   object []  "Sam"525.00 } );
        dt.Rows.Add(
new   object []  "Tom"750.00 } );
        dt.Rows.Add(
new   object []  "Sue"911.00 } );
        dt.Rows.Add(
new  Object[]  "Tom"127.00 } );
        dt.Rows.Add(
new  Object[]  "Sam"14512.00 } );
        dt.Rows.Add(
new  Object[]  "Sue"1517.00 } );
        dt.Rows.Add(
new  Object[]  "Sue"222.50 } );
        dt.Rows.Add(
new   object []  "Tom"243.00 } );
        dt.Rows.Add(
new   object []  "Tom"3378.75 } );

        ds.Tables.Add(dt);
       DataTable td
= dsHelper.SelectDistinct( " DistinctEmployees " , ds.Tables[ " Orders " ],  " EmployeeID " );
       
this .GridView1.DataSource  =  td;
       
this .GridView1.DataBind();

原文名:HOW TO: Implement a DataSet SELECT DISTINCT Helper Class in Visual C# .NET

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值