没有想到好的方法,这是最笨的方法,对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);//把得到新数据添加到新表中
}