lingq 的我也加一个 var query = from c in ds.Tables[0].AsEnumerable() group c by c.Field<int>("eId") into s select new { eId = s.Select(m => m.Field<int>("eId").ToString()), eName = s.Select(m => m.Field<string>("eName").ToString()), qut = s.Sum(p => p.Field<decimal>("qut")) }; DataTable dtss = new DataTable(); dtss.Columns.Add(new DataColumn("eId", typeof(string))); dtss.Columns.Add(new DataColumn("eName", typeof(string))); dtss.Columns.Add(new DataColumn("qut", typeof(int))); query.ToList().ForEach(p => dtss.Rows.Add(p.eId, p.eName, p.qut));
{
DataTable dt = new DataTable();
dt.Columns.Add("eId");
dt.Columns.Add("eName");
dt.Columns.Add("qut");
dt.Rows.Add(new object[] { "8016", "曹海霞", 633 });
dt.Rows.Add(new object[] { "8026", "钟华云", 400 });
dt.Rows.Add(new object[] { "8019", "戴燕", 633 });
dt.Rows.Add(new object[] { "8019", "戴燕", 633 });
dt.Rows.Add(new object[] { "8020", "李建玲", 633 });
dt.Rows.Add(new object[] { "8016", "曹海霞", 633 });
dt.Rows.Add(new object[] { "8026", "钟华云", 100 });
dt.Rows.Add(new object[] { "8026", "钟华云", 633 });
dt.Rows.Add(new object[] { "8028", "吴慧莲", 1157 });
dt.Rows.Add(new object[] { "8016", "曹海霞", 633 });
dt = Encrypt(dt);
} ///<summary>
/// 合计
///</summary>
///<returns></returns>
public static DataTable Encrypt(DataTable dt)
{
DataTable dtResult = new DataTable();
dtResult.Columns.Add("eId");
dtResult.Columns.Add("eName");
dtResult.Columns.Add("qut"); Decimal qut = new Decimal();
for (int i = 0; i < dt.Rows.Count; i++)
{
qut = Convert.ToDecimal(dt.Rows[i]["qut"]);
for (int j = i + 1; j < dt.Rows.Count; j++)
{
if (dt.Rows[i]["eId"] == dt.Rows[j]["eId"])
{
qut += Convert.ToDecimal(dt.Rows[j]["qut"]);
dt.Rows.RemoveAt(j);
j--;
}
}
dtResult.Rows.Add(new object[] { dt.Rows[i]["eId"], dt.Rows[i]["eName"], qut });
} return dtResult;
}
//创建一个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)
{
DataRow dr = dt.NewRow();
dr["eId"] = dx.Rows[i]["eId"];
dr["eName"] = dx.Rows[i]["eName"];
dr["qut"] = dx.Rows[i]["qut"];
dt.Rows.Add(dr);
}
}
return dt;
{ DataTable dt = CreateDataTable();
var query = from t in dt.AsEnumerable()
group t by new { t1 = t.Field<string>("eId"), t2 = t.Field<string>("eName") } into m
select new
{
eId = m.Key.t1,
eName = m.Key.t2,
qut = m.Sum(n => n.Field<int>("qut"))
};
/*
+ [0] { eId = "8016", eName = "张一", qut = 25 } <Anonymous Type>
+ [1] { eId = "8019", eName = "张三", qut = 38 } <Anonymous Type>
+ [2] { eId = "8020", eName = "张五", qut = 25 } <Anonymous Type> */ }
public static DataTable CreateDataTable()
{
DataTable tblDatas = new DataTable("Datas");
tblDatas.Columns.Add("eId", typeof(string));
tblDatas.Columns.Add("eName", typeof(string));
tblDatas.Columns.Add("qut", typeof(int)); tblDatas.Rows.Add(new object[] { "8016", "张一", 10});
tblDatas.Rows.Add(new object[] { "8016", "张一", 15});
tblDatas.Rows.Add(new object[] { "8019", "张三", 20});
tblDatas.Rows.Add(new object[] { "8019", "张三", 18});
tblDatas.Rows.Add(new object[] { "8020", "张五", 25});
return tblDatas;
}
var query = from c in ds.Tables[0].AsEnumerable()
group c by c.Field<int>("eId")
into s
select new
{
eId = s.Select(m => m.Field<int>("eId").ToString()),
eName = s.Select(m => m.Field<string>("eName").ToString()),
qut = s.Sum(p => p.Field<decimal>("qut"))
}; DataTable dtss = new DataTable();
dtss.Columns.Add(new DataColumn("eId", typeof(string)));
dtss.Columns.Add(new DataColumn("eName", typeof(string)));
dtss.Columns.Add(new DataColumn("qut", typeof(int)));
query.ToList().ForEach(p => dtss.Rows.Add(p.eId, p.eName, p.qut));
2楼的没有汇总出来