在数据集中分组并更新相同的数据集

时间:2012-10-08 07:47:07

标签: c# ado.net dataset

我有一个像

这样的数据集
  Currency        amount

    USD         1245
    INR         564
    USD         45645
    INR         5676
    JPY         5677

我想按货币分组并汇总金额并更新相同的数据集。

最终数据集应该像 -

Currency     Amount  
USD           46890
INR           6240
JPY           5677

1 个答案:

答案 0 :(得分:1)

您可以使用Linq-To-DataTableEnumerable.GroupBy

var grouped = table.AsEnumerable()
                   .GroupBy(r => f.Field<String>("Currency"))
                   .Select( g => new  { 
                            Currency = g.Key, 
                            Amount = g.Sum(r => r.Field<int>("amount")) 
                   });

var table2 = table.Clone(); // you can also just use the original table, i just didn't want to merge the data here
foreach(var grp in grouped)
{
    var newRow = table2.Rows.Add();
    newRow.SetField("Currency") = grp.Currency;
    newRow.SetField("amount") = grp.Amount;
}

现在,您可以使用DataAdapterDataTable更新数据库。