2010-07-26 137 views
0

datatable我有這樣的數據表。 我已得到SQLSERVER的數據,並存儲在數據表中的C#迭代通過c#

User  Svc  VSS 
    kiran  6.5 8 
    kiran  0.5 8 
    manu  0.0 4.0 
    manu  0.0 4.0 
    Priya  9.0 0.7 
    Priya  9.0 0.7 
    Peter  4.5 1.5 
    Peter  .0 .5 

現在我需要得到像這樣的另一個數據表

User  Svc  VSS 
    kiran  7.0  16.0 
    manu  0.0  8.0 
    Priya  18.0 1.4 
    Peter  4.5  6.5 

我怎樣才能實現這一目標的結果集,

任何幫助將gregotty apprecaited
謝謝 王子

+1

你需要第一個數據集的東西嗎?任何原因你不使用SELECT用戶,SUM(Svc)AS Svc,SUM(VSS)AS VSS FROM ...? – SteveCav 2010-07-26 05:13:55

回答

5

如果使用TypeDataSet和表名=表名,然後使用LINQ,你可以很容易地做到這一點如下..

 var query = from row in tableName.AsEnumerable() 
        group row by row.User into Group       
        select new 
        { 
         User = Group.Key, 
         SvcSum = Group.Sum(r => r.svc), 
         VssSum = Group.Sum(r => r.vss) 
        }; 

     foreach (var grp in query) 
     { 
      Console.WriteLine("{0}\t{1}\t{2}", grp.User, grp.SvcSum, grp.VssSum); 
     } 

我必須通過創建表和項目測試。我認爲這會對你有所幫助。 謝謝

+0

感謝Engr.Md Mamun Ar Rashid。 – happysmile 2010-07-30 15:02:20

3

你最好的選擇可能是在存儲過程中將其聚合,而不是試圖迭代數據表。

select 
    [User], 
    sum(SVC), 
    sum(VSS) 
from 
    DataTable 
group by 
    [User] 
+0

+1猜測OP的要求 – 2010-07-26 05:16:48