2010-07-26 234 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