你好,我也是开发者,我遇到一个问题c#中同一个Datatable中的如何把重复的记录合并起来,怎么解决呀 10
3个回答
2014-06-04
展开全部
就是消除重复项是吧?
dataview dv=new dataview(dt);
datatable dt2=dv.totable(true,"ID","Name");
dv.totable的两个参数true是是否去除重复,第二个是你要现实的字段,这里就显示ID和Name
dataview dv=new dataview(dt);
datatable dt2=dv.totable(true,"ID","Name");
dv.totable的两个参数true是是否去除重复,第二个是你要现实的字段,这里就显示ID和Name
追问
记录1、[名字]=李洋 [数量]=13
记录2、[名字]=李洋 [数量]=18
我想要的结果是: [名字]=李洋 [数量]=31
追答
这样就查询的时候就消除的重复的所有Name值,根据消除重复的Name查询值,得到数量加起来就是了,有点麻烦
展开全部
这个需要用数据库的查询语句解决。
追问
不要数据库,数据库会,就是代码里面,datatable来控制
追答
其实在select里面写一个group by 最好解决了,但是如果你非要在代码里面写,那么你用linq吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
所谓的合并是一个怎样的效果呢
追问
记录1、[名字]=李洋 [数量]=13
记录2、[名字]=李洋 [数量]=18
我想要的结果是: [名字]=李洋 [数量]=31
追答
给你个例子 希望能帮到你 最后dt1 就是你要的
不用linq 的话 就只能遍历了 找到相同项后合并再产生一个table
DataTable dt = new DataTable("TEST");
dt.Columns.Add("name", typeof(string));
dt.Columns.Add("age", typeof(int));
dt.Rows.Add("AA", 10);
dt.Rows.Add("BB", 110);
dt.Rows.Add("CC", 20);
dt.Rows.Add("AA", 120);
var query = (from b in dt.AsEnumerable()
group b by new
{
name = b.Field("name"),
} into g
select new
{
name = g.Select(p => p.Field("name")).First(),
age = g.Sum(p => p.Field("age"))
}).ToList();
DataTable dt1 = dt.Clone();
query.ForEach(p => dt1.Rows.Add(p.name, p.age));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询