没有想到好的方法,这是最笨的方法,对datatable的逐行进行汇总。       

     DataTable ddt = new DataTable();
             for (int i = 0; i < dt.Rows.Count; i++)
            {
                string ConnectStrings = dt.Rows[i]["DB_UU_Boat"].ToString();
                DataTable dtrows = gs.GetLostCountDetail(ConnectStrings, dayNum);
                ddt.Merge(dtrows);//合并表格
            }
            DataView dv = ddt.DefaultView;
            dv.Sort = "visitTime";//排序,按照字段visitTime进行排序
            ddt = dv.ToTable();//保存排序后的table
            DataTable dtds = ddt.Clone();//新建一个结构相同的表格,用来存放结果
            string ssc = "";
            for (int i = 0; i < dv.Count; i++)
            {
                if (ssc == ddt.Rows[i]["visitTime"].ToString())//如果是重复的,则跳过!
                {
                    continue;
                }
                string sB = ddt.Compute("Sum(D_count)", "visitTime=" + ddt.Rows[i]["visitTime"].ToString()).ToString();//根据相同的visitTime来汇总D_count
                ssc = ddt.Rows[i]["visitTime"].ToString();
                DataRow dtro = dtds.NewRow();//新建一个datarow,来承接汇总后的数据
                dtro[0] = sB;
                dtro[1] = ssc;
                dtds.Rows.Add(dtro);//把得到新数据添加到新表中
            }

posted on 2009-06-24 10:46  Burt  阅读(1237)  评论(0编辑  收藏  举报