日期:2014-05-16  浏览次数:21609 次

C# DataTable 分类汇总
eId               eName        qut
----------------------------------------------
8016 曹海霞 633
8016 曹海霞 633
8019 戴燕 633
8019 戴燕 633
8020 李建玲 633
8022 吴丽娟 1157
8026 钟华云 633
8026 钟华云 633
8026 钟华云 1157
8028 吴慧莲 1157
8030 程祖琴 300
8032 王燕 594
8032 王燕 300
8033 朱梦 1157
........

这是一个 DataTable 里的数据,   如何按 eId  汇总  qut

得到新的DataTable

eId               eName        qut
----------------------------------------------
8016 曹海霞 1266
8019 戴燕 1266
8020 李建玲 633
.................
------解决方案--------------------

//创建一个DataTable对象并创建列 
            DataTable dt = new DataTable();
            dt.Columns.Add("eId", typeof(string));
            dt.Columns.Add("eName", typeof(string));
            dt.Columns.Add("qut", typeof(string));
            //获取数据
            DataTable dx =GetTable() ;
            for (int i = 0; i < dx.Rows.Count; i++)
            {
                //定义一个Int变量用于判断是否有匹配项
                int state = 0;
                for (int j = 0; j < dt.Rows.Count; j++)
                {
                    if (dx.Rows[i]["eId"].Equals(dt.Rows[j]["eId"]))
                    {
                        dt.Rows[j]["qut"] = Convert.ToDecimal(dt.Rows[j]["qut"]) + Convert.ToDecimal(dx.Rows[i]["qut"]);
                        state = 1;
                        break;
                    }
                }
                //如果没有一样的就添加一行
                if (state == 0)
         &nbs