2017-06-04 12 views
0

私は2つのデータセットを持っています。それらをマージしました。マージ後、私はそれらをdatagridに表示したい、しかし、同じ 'id'カラムがある場合は、sumとgroupでなければなりません。同一のIDを持つ合計カラム

例; ; 現在、それはrealid "カラムは以下のように同じである場合は、それらを合計である私が欲しいもの、この

enter image description here

のように見えます

enter image description here

私は現在、コードの下に行なったし、最後に私は、データグリッドにバインドします。

それ以降はどうすればよいですか?

 DataTable dtNewTable = new DataTable(); 
     DataTable dtCurtable = new DataTable(); 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      // Add columns 
      DataColumn column2 = new DataColumn("counts", typeof(System.Int32)); 
      DataColumn column3 = new DataColumn("realid", typeof(string)); 
      dtNewTable.Columns.Add(column2); 
      dtNewTable.Columns.Add(column3); 


      dtCurtable = dtNewTable.Copy(); 

     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      DataRow row; 
      Random r = new Random(); 

      dtNewTable.Clear(); 


      for (int i = 0; i <= 1; i++) 
      { 
       row = dtNewTable.NewRow(); 
       row["counts"] = r.Next(10,40) ; 
       row["realid"] = i + " id"; 
       dtNewTable.Rows.Add(row); 

      } 

      dtCurtable.Merge(dtNewTable); 
      dataGrid1.DataSource = dtCurtable; 

     } 

答えて

0

現在のDataRow行= dt.NewRow(の 'DT' 何

var dt1 = dtCurtable.AsEnumerable() 
       .GroupBy(r => r.Field<string>("realid")) 
       .Select(g => 
       { 
       DataRow row = dtCurtable.NewRow(); 
       row["realid"] = g.Key; 
       row["Count"] = g.Sum(r => r.Field<int>("counts")); 


       return row; 
      }).CopyToDataTable(); 
+0

)のように、ここでのLINQを使用することができます。 –

+0

@ johntrue、それはタイプミスです。再度編集を参照してください – Rahul

+0

私はデータベースからdatetimeを取得します。しかし、これはNAエラーを投げます。 row2 ["SAMPLE_TIME"] = g.Select(h => h.Field ( "SAMPLE_TIME")); –

関連する問題