首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

datatable 合拢 数据

2013-07-09 
datatable合并 数据我 有一个 dt 存的数据 是 这样的nameoidmoneyA110B110C110D110A220C310 显示成nameoid

datatable 合并 数据
我 有  一个 dt 存的数据 是 这样的
name  oid    money
A      1      10
B      1      10
C      1      10
D      1      10
A      2      20
C      3      10 

显示成  
name            oid    money
A,B,C,D         1         40
A                2        20
C               3          10 
[解决办法]


 DataTable dtable = new DataTable();
            dtable.Columns.Add("name",typeof(string));
            dtable.Columns.Add("oid", typeof(int));
            dtable.Columns.Add("money", typeof(int));
            dtable.Rows.Add(new object[] { "A", 1, 10 });
            dtable.Rows.Add(new object[] { "B", 1, 10 });
            dtable.Rows.Add(new object[] { "C", 1, 10 });
            dtable.Rows.Add(new object[] { "D", 1, 10 });
            dtable.Rows.Add(new object[] { "A", 2, 20 });
            dtable.Rows.Add(new object[] { "C", 3, 10 });

            var dtquery = from dt in dtable.AsEnumerable()
                          group dt by dt.Field<int>("oid") into g
                          select new
                              {
                                  name = String.Join(",", g.Select(x => x.Field<string>("name")).ToArray()),


                                  oid = g.Key,
                                  money = g.Sum(x => x.Field<int>("money"))

                              };

            foreach (var dd in dtquery)
            {
                Console.WriteLine(dd.name + "\t" + dd.oid + "\t" + dd.money);
            }


[解决办法]
up 1 楼
用一楼的方式得到LIST后(最好不要用匿名类),用下边的方式转换成DataTable

http://blog.csdn.net/q107770540/article/details/6556210

热点排行