`
thinkgem
  • 浏览: 587422 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C# 如何去掉DataTable中的重复行

    博客分类:
  • C#
阅读更多
.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");
         }
 
分享到:
评论

相关推荐

    datatable中移除重复行 ,并能合并重复行

    以上就是关于在`DataTable`中处理重复行的基本方法,包括移除重复行和合并重复行的操作。在实际应用中,你需要根据具体需求调整这些方法,例如改变去重或合并的依据列。同时,要注意处理大数据量时的性能优化,避免...

    C# DataTable去重,根据列名去重保留其他列

    详细描述如何使用C# 去除DataTable中的重复列,根据列名去重保留其他列

    C#中datatable去重的方法

    本文实例讲述了C#中datatable去重的方法,分享给大家供大家参考。具体方法如下: 这里主要介绍两种方法: 1 数据库直接去除重复 代码如下:select distinct * from 表名 去除了重复行distinct 2 对 DataTable直接...

    c# datatable 操作类

    最后,`Distinct`操作用于去除数据中的重复项。例如,如果我们要找出所有不同的客户ID,可以这样做: ```csharp var uniqueIds = dt.AsEnumerable() .Select(row =&gt; row.Field("CustomerId")) .Distinct(); ``` ...

    DataTable分类求和,分类汇总,排序

    在IT领域,DataTable是.NET Framework中System.Data命名空间...通过熟练运用Compute方法、RowFilter、DataView排序、去除重复行以及使用LINQ进行分类汇总,我们可以有效地管理和分析数据,为业务决策提供强有力的支持。

    datatable去掉重复行的方法

    去掉DataTable中(所有列的数据都相同)重复的行: 代码如下: //DataView dv = dt3.DefaultView; //dt3默认的虚拟视图 //dv.Sort = “wmid asc”; //排序 ///dv.ToTable(true, “列名,列名,列名”); ///第一个...

    利用linq给两个datatable去重

    两个datatable,t1和t2 t2是t1的子集,用linq去掉t1中包含t2的数据

    C#将txt文档中的重复记录删除。

    在C#编程环境中,开发一个WinForm应用来处理TXT文件并去除其中的重复记录是一项常见的任务。这个过程涉及文本文件的读取、数据结构的选择(如DataTable)以及数据处理算法的实现。以下是对这一主题的详细说明: 1. ...

    检查GridControl列表视图某列是否有重复数据

    在C#中,如果数据源是DataTable,可以使用`Columns`集合来访问特定列;如果是List,可以直接通过对象的属性名来访问。 3. **创建哈希集**:哈希集(HashSet)是一种不包含重复元素的集合,非常适合用来检测重复数据...

    C#开发经验技巧宝典

    0877 利用关键字DISTINCT去除重复记录 517 0878 巧用TOP子句获取信息 518 0879 巧用CONTAINS谓词检索信息 518 0880 通过ISNULL替换信息 519 0881 比较COMPUTE和GROUP BY 519 0882 如何对指定时间段进行...

    C#编程经验技巧宝典

    85 &lt;br&gt;0131 巧截字符串的数字 86 &lt;br&gt;0132 如何存储变长字符串 86 &lt;br&gt;0133 在进行字符串比较时忽略大小写 87 &lt;br&gt;0134 如何去除字符串尾空格 87 &lt;br&gt;0135 如何去掉字符串中所有空格 ...

    批量插入数据库方法

    - 数据预处理:在插入前,对数据进行预处理,如去除重复项、格式校验等,可避免插入时的异常。 - 异步操作:使用异步API(如`WriteToServerAsync`)可以提高并发性能,特别是在多线程或多任务场景下。 - 事务管理...

    文件数据采集.zip

    9. 数据处理和清洗:在数据采集后,可能需要进行数据清洗和预处理,如去除重复值、处理缺失值、类型转换等,这些可以通过Linq查询或自定义函数实现。 10. 安全性:考虑到数据敏感性,文件操作可能需要考虑权限控制...

    Excel导出时不要表头.txt

    - 使用双层循环遍历DataTable中的每一行和每一列,并将数据写入相应的位置。注意,由于Excel的行列索引是从1开始的,因此在设置单元格值时,需要对索引加1。 4. **自动调整列宽**: - 使用`AutoFit`方法可以自动...

    很强大的.Net笔试题集锦

    -- 重复4行 --&gt; var table = document.getElementsByTagName('table')[0]; var cell = table.rows[0].cells[1]; console.log(cell.innerHTML); ``` 4. 弹出无边框窗口:JavaScript的window.open方法可以创建...

    100万条数据导入SQL数据库仅用4秒

    这包括但不限于数据清洗、格式检查、去除重复项等。确保导入的数据质量高且无误,可以减少数据库事务回滚和重试的可能性,从而提高整体性能。 数据库设计也会影响导入速度。合理的数据分区、索引以及选择合适的数据...

    C# 轻量级ORM 编写思维

     降低研发人员门槛,提高效率,去除重复引用DLL的工作,基础配置由抽象工厂处理。  基础扩展   /// /// DataTable 转换为List 集合 /// /// 类型 /// &lt;param name=dt&gt;...

Global site tag (gtag.js) - Google Analytics