2015-07-19 22 views
0

我有一個ParentID列的數據集表,並希望將此列中的多個值計數到一個具有兩個字段的新表中,例如ParentID 5978和ParentID 4的計數。獲取數據集表中多個值的計數

我的表列

ParentID 
5978 
5978 
5978 
5978 
5979 
5979 
5979 
5979 
5979 
5979 
5979 
5979 
5980 
5980 
5980 
5980 
5981 
5981 
5981 

代碼片段的片段:

TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); 
      TreeNodeDataSet parentNodes = tree.SelectNodes(SiteContext.CurrentSiteName, "/Shop%", LocalizationContext.CurrentCulture.CultureCode, false, "My.ProductCategory", "OriginalID = " + cId, "NodeID", -1, false, 1); 
      DataTable dt = new DataTable(); 
      DataSet ds = new DataSet(); 
      DataSet dx = new DataSet(); 
      DataSet da = new DataSet(); 
      ds = parentNodes.Items.FirstItem.Children; 
      dx = parentNodes.Items.FirstItem.AllChildren; 
      da.Merge(dx.Tables[0].Select("NodeLevel = 4")); 

我要查詢的表是在數據集中DA

+2

你的代碼片段? –

+0

代碼片段; – JohnL

回答

1

嘗試類似這樣的東西。使用GroupBy()

  DataTable dt = new DataTable(); 

      dt.Columns.Add("ParentID", typeof(int)); 
      dt.Rows.Add(new object[] {5978}); 
      dt.Rows.Add(new object[] {5978}); 
      dt.Rows.Add(new object[] {5978}); 
      dt.Rows.Add(new object[] {5978}); 
      dt.Rows.Add(new object[] {5979}); 
      dt.Rows.Add(new object[] {5979}); 
      dt.Rows.Add(new object[] {5979}); 
      dt.Rows.Add(new object[] {5979}); 
      dt.Rows.Add(new object[] {5979}); 
      dt.Rows.Add(new object[] {5979}); 
      dt.Rows.Add(new object[] {5979}); 
      dt.Rows.Add(new object[] {5979}); 
      dt.Rows.Add(new object[] {5980}); 
      dt.Rows.Add(new object[] {5980}); 
      dt.Rows.Add(new object[] {5980}); 
      dt.Rows.Add(new object[] {5980}); 
      dt.Rows.Add(new object[] {5981}); 
      dt.Rows.Add(new object[] {5981}); 
      dt.Rows.Add(new object[] {5981}); 

      var results = dt.AsEnumerable() 
       .GroupBy(x => x.Field<int>("ParentID")) 
       .Select(x => new { ParentID = x.Key, Count = x.Count() }) 
       .ToList(); 
​