2011-03-24 75 views
2

我正在使用XML文件,並將XML中的數據設置爲數據集,並將用戶選擇的表存儲爲數據表。使用過濾條件,分組,聚合函數,表達式生成查詢等是否可以查詢數據表? 我確實來過table.Select(篩選條件,排序)method.but請讓我知道如何分組,聚合函數和表達式(例如:Column1 + Column2作爲SumColumn)可以得到。如何查詢數據表

回答

1

不幸的是,table.Select(filterCriteria, sort)是你的唯一選擇沒有LINQ(我不是LINQ的大師,所以不要問我它能做什麼)。

任何時候我需要特定的東西,我創建/添加該列到DataTable。

 DataTable table = new DataTable(); 
     // code that populates the table 
     DataColumn c = table.Columns.Add("Column1 + Column2", typeof(int)); 
     int Sum = 0; 
     for (int i = 0; i < table.Rows.Count; i++) { 
      r = table.Rows[i]; 
      int col1 = (int)r["Column1"]; 
      int col2 = (int)r["Column2"]; 
      int both = col1 + col2; 
      Sum += both; 
      r[c] = string.Format("{0}", both); 
     } 
     DataRow summaryRow = table.NewRow(); 
     summaryRow[c] = (int)((float)Sum/table.Rows.Count + 0.5); // add 0.5 to round 
     table.Rows.Add(summaryRow); 

HTH。

+0

@ ip2Code - thanx..Plz建議使用C#代碼進行分組和彙總函數(eg-sum(col1),avg(col2))的邏輯。 – pKumar 2011-03-24 17:25:08

+0

按照您需要的方式構建表格後,必須遍歷條目才能彙總值並獲取平均值。 – jp2code 2011-03-24 17:39:48

+0

我編輯了代碼,給出了一個更完整的例子,我認爲你在做什麼。 – jp2code 2011-03-24 17:48:31

2

您可以使用LINQ查詢數據 - 假設您使用支持它的.Net Framework版本。退房LINQ To Dataset

+0

它應該是一個通用代碼,用於根據用戶對數據源和數據庫的選擇對所有表執行過濾條件,分組和聚合函數。可以創建一個通用的LINQ查詢。 – pKumar 2011-03-24 16:59:06

+0

- 我的意思是通用的是,表/分組/篩選條件的細節不能被硬編碼。我有一個字符串,包含選定的列,過濾條件,查詢的分組細節。但是在LINQ中,不接受字符串串聯(例如:從

其中 ....未按要求執行) – pKumar 2011-03-24 17:10:08