c#中合并DataTable重复行的值

代码如下:

//DataTable数据添加
            Hashtable ht = new Hashtable();
            DataTable dt = new DataTable();
            DataColumn dc = new DataColumn("id");
            dt.Columns.Add(dc);
            dc = new DataColumn("name");
            dt.Columns.Add(dc);
            dc = new DataColumn("values");
            dt.Columns.Add(dc);
            DataRow dr = dt.NewRow();
            dr["id"] = 1;
            dr["name"] = "张三";
            dr["values"] = "A";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["id"] = 2;
            dr["name"] = "李四";
            dr["values"] = "B";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["id"] = 3;
            dr["name"] = "张三";
            dr["values"] = "C";
            dt.Rows.Add(dr);
            dataGridView1.DataSource = dt;

//合并
            for (int i = 0; i < dt.Rows.Count; i++ )
            {
                if (ht.ContainsKey(dt.Rows[i]["name"]))
                {
                    //获取行索引
                    int index = (int)ht[dt.Rows[i]["name"]];
                    //获取最近一次的值(对应values)
                    string str = (string)dt.Rows[index]["values"];
                    //拼接
                    dt.Rows[index]["values"] = str + "|" + dt.Rows[i]["values"];
                    //删除重复行
                    dt.Rows.RemoveAt(i);
                    //调整索引减1
                    i--;
                }
                else
                {
                    //保存名称以及行索引
                    ht.Add(dt.Rows[i]["name"], i);
                }

}

(0)

相关推荐

  • C#中把Datatable转换为Json的5个代码实例

    实例一: 复制代码 代码如下: /// <summary>         /// Datatable转换为Json         /// </summary>        /// <param name="table">Datatable对象</param>         /// <returns>Json字符串</returns>         public static string ToJson(D

  • C#使用DataSet Datatable更新数据库的三种实现方法

    本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法.DataAdapter 更新数据源以及使用sql语句更新.分享给大家供大家参考之用.具体方法如下: 一.自动生成命令的条件 CommandBuilder 方法 a)动态指定 SelectCommand 属性 b)利用 CommandBuilder 对象自动生成 DataAdapter 的 DeleteCommand.InsertCommand 和 UpdateCommand

  • C#实现将DataTable内容输出到Excel表格的方法

    本文实例讲述了C#实现将DataTable内容输出到Excel表格的方法.分享给大家供大家参考.具体如下: 1.关于本文 本文描述了一个函数(SaveToExcel),该函数可以将DataTable数据内的数据输出到Excel表格中 2.相关说明 1)本文中使用这个函数将一个DataTable中的内容输出到路径名为addr的目录下: 复制代码 代码如下: public void SaveToExcel(string addr, System.Data.DataTable dt) 2)这个函数需要

  • C#从DataTable获取数据的方法

    本文实例讲述了C#从DataTable获取数据的方法.分享给大家供大家参考.具体如下: 通过通用类,返回一个DataTable,要想显示每个单元格,只要做两次循环即可: foreach (DataRow row in dt.Rows) { foreach (DataColumn column in dt.Columns) { Console.WriteLine(row[column]); } } row[column] 中的column是检索出来的表个列名. 如果想把某列的值拼接字符串,那就去掉

  • C#中DataTable删除行的方法分析

    本文实例讲述了C#中DataTable删除行的方法,分享给大家供大家参考之用.具体实现方法如下: 自己的删除例子(drTemp是表,gvSummary是dev 的gridview.单击右键点击grid删除): 1.dtTemp.Rows.RemoveAt(gvSummary.FocusedRowHandle); 2.dtTemp.Rows[gvSummary.FocusedRowHandle].Delete();  dtTemp.AcceptChanges(); 在C#中,如果要删除DataTa

  • C# DataTable中Compute方法用法集锦(数值/字符串/运算符/表等操作)

    本文实例讲述了C# DataTable中Compute方法用法.分享给大家供大家参考,具体如下: Compute函数的参数就两个:Expression,和Filter. Expresstion是计算表达式,关于Expression的详细内容请看这里: http://msdn2.microsoft.com/zh-cn/library/system.data.datacolumn.expression(VS.80).aspx 而Filter则是条件过滤器,类似sql的Where条件. DataTab

  • C#对DataTable里数据排序的方法

    直接给个实例代码吧 复制代码 代码如下: protected void Page_Load(object sender, EventArgs e)    {        DataTable dt = new DataTable();        dt.Columns.Add("Name");        dt.Columns.Add("Age");//因为是字符串,所以排序不对        dt.Rows.Add("小明", "

  • C#中DataTable排序、检索、合并等操作实例

    一.排序1.获取DataTable的默认视图2.对视图设置排序表达式3.用排序后的视图导出的新DataTable替换就DataTable(Asc升序可省略,多列排序用","隔开)1).重生法 复制代码 代码如下: dstaset.Tables.Add(dt)dataset.Tables(0).DefaultView.Sort = "id desc" 2).直接法 复制代码 代码如下: dv = New DataView(dt)dv.Sort = "id d

  • C#将DataTable转换成list的方法

    本文实例讲述了C#将DataTable转换成list及数据分页的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: /// <summary>   /// 酒店评论列表-分页  /// </summary>  /// <param name="userId"></param>  /// <param name="pageIndex">当前页</param>  /// <param

  • c#将list类型转换成DataTable方法示例

    复制代码 代码如下: /// <summary>       /// 将List转换成DataTable       /// </summary>       /// <typeparam name="T"></typeparam>       /// <param name="data"></param>       /// <returns></returns>   

  • C#中csv文件与DataTable互相导入处理实例解析

    本文介绍了C#中csv文件与DataTable互相导入处理实例解析,主要功能代码封装处理下,相对比较简单.以后项目用到的话可以直接使用.具体方法如下: 1.封装好的类如下: using System; using System.Data; using System.IO; using System.Text; using CSharpUtilHelpV2; using StringUtilHelp; namespace DBUtilHelpV2Plus { public static class

  • C#中datatable去重的方法

    本文实例讲述了C#中datatable去重的方法,分享给大家供大家参考.具体方法如下: 这里主要介绍两种方法: 1  数据库直接去除重复 复制代码 代码如下: select  distinct * from 表名 去除了重复行distinct 2 对 DataTable直接进行操作 复制代码 代码如下: DataTable  dt=db.GetDt("select * from 表名");//获得datatable DataView dv = new DataView(dt);//虚拟

随机推荐