2012-10-08 58 views
0

我有這樣一個數據集 - 通過貨幣集團在數據庫和更新同一數據集

Currency  amount 

    USD   1245 
    INR   564 
    USD   45645 
    INR   5676 
    JPY   5677 

我想組和聚集量以及和更新同一數據集。

最終的數據集應該是這樣的 -

Currency  Amount 
USD   46890 
INR   6240 
JPY   5677 
+0

有沒有辦法做到沒有Linq,因爲我不能在我的場景中使用Linq? –

回答

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; 
} 

現在你可以使用一個DataAdapter更新從DataTable數據庫。