日期:2014-05-18  浏览次数:20425 次

怎么删除dataset 或datatable中相同的行
我用dataset中的Merge合并了两个dataset合并后有许多相同的行
那我怎么删除其中相同的行呢

------解决方案--------------------
C# code
private   bool   ColumnEqual(object   A,object   B)   
  {   
  if   (   A   ==   DBNull.Value   &&   B   ==   DBNull.Value   )   
  return   true;   
  if   (   A   ==   DBNull.Value   ||   B   ==   DBNull.Value   )   
  return   true;   
    
  return   (   A.Equals(B)   );   
  }   
    
  ///   <summary>   
  ///   Distinct表字段   
  ///   </summary>   
  ///   <param   name="SourceTable">DataTable源</param>   
  ///   <param   name="FieldName">要Distinct的字段</param>   
  ///   <returns>返回一个Distinct表,只有一列,就是Distinct列</returns>   
  public   DataTable   SelectDistinct(DataTable   SourceTable,   string   FieldName)   
  {   
  DataTable   dt   =   new   DataTable();   
  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});   
  }   
  }   
    
  return   dt;   
  }