C# Datatable中进行分组汇总学习(学习记录)

DataTable dt = DAL.getTable(select * from 成绩表);
/*
  名字    性别    成绩
 text1    男      80
 text1    男      60
 text1    男      90
 text2    女      60
 text2    女      90
 text2    女      90
*/


DataTable table = new DataTable(); //创建个存放名字和总数的datatable
                table.Columns.AddRange(
                    new DataColumn[] { new DataColumn("名字", typeof(string)),
                                         new DataColumn("总成绩", typeof(string)) });
                DataTable dtName = dt.DefaultView.ToTable(true, "名字");//对名字进行分组,筛选出共多少个名字,筛选结果为text1,text2
                  for (int i = 0; i < dtName.Rows.Count; i++)
                   {
                     DataRow dr = table.NewRow();
                     dr[0] = dtName.Rows[i][0].ToString();//存放名字
                     dr[1] = dt.Compute("sum(成绩)", "名字='" + dtName.Rows[i][0] +"'");//对应的名字进行sum汇总
                     table.Rows.Add(dr);//添加进table中
                   }
                string ZCJ = "";
                  for (int i = 0; i < table.Rows.Count; i++)
                    {

                      JKB = "学生" + table.Rows[i][0].ToString() + " 总成绩为:" + table.Rows[i][1].ToString() + " \r";//后面加个\r进行换行

                    }

一般用于sql中查出来的数据需要单独汇总的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值