一定要用Datatable来吗?在查询时可以不?select name ,min(derpartment),sum(score) from T_score group by name
谢谢,不可以的,因为第一次从数据库中查出的数据(也就是不管是否重复)需要在页面上绑定将数据绑定,然后点击按按钮触发一个事件 再对这个datatable进行查重以及合并行。
最终查重以及合并好的数据是会放到一个新的datatable中进行下一步操作的
@gate36E: 办法一,用SQL,你可以第一次显示时Gridview绑定的SQL语句为你原来的SQL,单击合并按钮时绑定成我提供给你的SQL。
办法二,用Linq, var d = from s in dt.Rows.Cast<DataRow>() group s by s.Field<int>("Name") into g select new {
g.Key,
score = g.Sum(s=>s.Field<decimal>("score"))
};
当然了,Linq本质还是循环,你也可以自己循环Datatable
@happydaily: 谢谢了!
以下两篇文章可以参考:
1, C#用DataTable实现Group by数据统计 里面介绍了三种方法
2,LINQ to Datatable Group by and return all columns 这个SUM(MARK)和上篇文章中的 第三种方法一样
“因为第一次从数据库中查出的数据(也就是不管是否重复)需要在页面上绑定将数据绑定,然后点击按按钮触发一个事件 再对这个datatable进行查重以及合并行。”。合并后的数据要写入数据库吗?如果是的话,可以写个存储过程实现。点击按钮触发事件后调用这个存储过程。如果合并后的结果要显示出来的话,再查询一下。