博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 如何去掉DataTable中的重复行
阅读量:7043 次
发布时间:2019-06-28

本文共 3178 字,大约阅读时间需要 10 分钟。

hot3.png

.net 1.1中的解决方法
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", 5, 25.00 });          dt.Rows.Add(new object[] { "Tom", 7, 50.00 });          dt.Rows.Add(new object[] { "Sue", 9, 11.00 });          dt.Rows.Add(new Object[] { "Tom", 12, 7.00 });          dt.Rows.Add(new Object[] { "Sam", 14, 512.00 });          dt.Rows.Add(new Object[] { "Sue", 15, 17.00 });          dt.Rows.Add(new Object[] { "Sue", 22, 2.50 });          dt.Rows.Add(new object[] { "Tom", 24, 3.00 });          dt.Rows.Add(new object[] { "Tom", 33, 78.75 });          ds.Tables.Add(dt);        DataTable td=dsHelper.SelectDistinct("DistinctEmployees", ds.Tables["Orders"], "EmployeeID");        this.GridView1.DataSource = td;        this.GridView1.DataBind();
 ===========================================================================================
 .net 2.0中的解决方法
 
public DataTable GetTopSearch()          {             DataSet dsKeyword = dal.GetKeyword();             DataSet dsTopSearch = new DataSet();             for (int i = 0; i < 4; i++)              {                 string keyword = dsKeyword.Tables[0].Rows[i]["Name"].ToString();                 string condition = dsKeyword.Tables[0].Rows[i]["SearchCondition"].ToString();                 dsTopSearch.Merge(dal.GetTopSearch(keyword,condition));             }             return dsTopSearch.Tables[0].DefaultView.ToTable(true, "ID","Name","Author","Publisher","PublishDate","TypeName","Price","SalePrice","SavePrice","Rebate","ImagePath","ContentIntro");         }
 

转载于:https://my.oschina.net/thinkgem/blog/713455

你可能感兴趣的文章
win8一体机按SHIFT键删除文件怎样找到
查看>>
linux第二关练习题上部
查看>>
APP免邀请码能够统计用户安装数据吗?
查看>>
建筑企业施工现场推行5S管理的基本原则
查看>>
Java 枚举 switch的用法
查看>>
程序员编程10大原则,请牢牢记住!
查看>>
这五大方向值得关注 2019智能家居趋势面面观
查看>>
人工智能不是人的智能:先人工,再智能
查看>>
centos 基础性命令
查看>>
Java 8 中处理集合的优雅姿势——Stream
查看>>
mongodb配置---副本集
查看>>
UI设计的几个基本的设计原则
查看>>
远程管理 KVM 虚机 - 每天5分钟玩转 OpenStack(5)
查看>>
python实战系列之通过libvirt操作KVM(六)
查看>>
高可用术语解释:Split-Brain
查看>>
Laravel 队列系统
查看>>
自动FTP 登录备份脚本
查看>>
view
查看>>
我的友情链接
查看>>
tomcat配置文件server.xml详解
查看>>