动态列的 datatable 中 相同行的数据合并,求代码方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态列的 datatable 中 相同行的数据合并,求代码方法相关的知识,希望对你有一定的参考价值。
gz A B C D
a 1 0 0 0
b 0 2 0 0
c 0 0 3 0 ==========》
d 0 0 0 4
a 0 5 0 0
b 0 0 6 0
a 0 0 7 0
gz A B C D
a 1 5 7 0
b 0 2 6 0
c 0 0 3 0
d 0 0 0 4
将gz列中同名的行合并,A B C D为列,而且是动态的,可能是A B C D E 。。。。等等 合并时,数值可以是相加的
DataTable dt = new DataTable("person");
dt.Columns.Add("name", typeof(string));
dt.Columns.Add("age", typeof(string));
dt.Columns.Add("sex", typeof(string));
dt.Rows.Add("张三", "28", "男");
dt.Rows.Add("李四", "28", "男");
dt.Rows.Add("张三", "28", "男");
string[] distinctcols = new string[(dt.Columns.Count)];
foreach (DataColumn dc in dt.Columns)
distinctcols[dc.Ordinal] = dc.ColumnName;
DataTable dtqc = new DataTable("person1");
DataView dataview = new DataView(dt);
dtqc = dataview.ToTable(true, distinctcols);
随便写的,看符合你的情况吗;dt是未去重,dtqc是去重后的
我这边没有装数据库, 你试试可不可以...看错题目了....等下我再想想....
这样:
select gz,sum(A) as 'A',sum(B) as 'B',sum(C) as 'C',sum(D) as 'D' from test group by gz
从datatable里取某行某列的值
我在datalist里绑定了一个之前存储的datatable,现在我想取出datatable里某行某列的值,这个某行是由用户来指定的,然后代码要取出这一行里所有的列值。求解!!在线等,赶着交作品!
参考技术A 实现的方式有几种。第一种,把datatable存入Session,然后在下次请求的时候读出,再根据绑定的ID号遍历其中的某一行。
第二种,把datatable存入ViewState里面,然后在下次请求的时候读出,再根据绑定的ID号遍历其中的某一行。
第三种,在每一行第一列(模板列)放一个Hidden控件,绑定ID主键,请求时,通过在事件里使用FindControl方法取得这个Hidden控件取得ID值,然后再查询数据库,单独取这行,就得到了。
三种方法用的情况不一样,但是对于你想要的,显然第三种是最好的,也是效率最高的。本回答被提问者采纳
以上是关于动态列的 datatable 中 相同行的数据合并,求代码方法的主要内容,如果未能解决你的问题,请参考以下文章