2010-07-29 105 views

回答

0

不幸的是我不夠了解LINQ,以確定這是否是一個可行的解決方案。我選擇在數據庫級別上執行我的樞紐邏輯。我會保持睜大眼睛。

1

你可以使用LINQ:

myDataTable.AsEnumerable() 
    .GroupBy(r => new {col1 = r["col1"], col2 = r["col2"]}); 

編輯 根據註釋Vertified:

DataTable dataTable = new DataTable(); 
dataTable.Columns.Add("col1"); 
dataTable.Columns.Add("col2"); 
dataTable.Columns.Add("val"); 
dataTable.Rows.Add("a", "b", 0); 
dataTable.Rows.Add("a", "b", 2); 
dataTable.Rows.Add("a", "c", 3); 

Console.WriteLine(dataTable.AsEnumerable() 
    .GroupBy(r => new { col1 = r["col1"], col2 = r["col2"] }).Count()); //2 
+0

我不太瞭解LINQ。當我嘗試這個代碼時,我仍然得到相同數量的行。一個pivoted版本會使結果集非規範化並返回一個小得多的結果集。 – 2010-07-29 18:31:04

+0

@ subt13:我剛剛嘗試過,它確實返回的行較少,您可以發佈您使用的代碼嗎? – 2010-07-29 19:57:29

+0

你說得對,我的結果集中有一個額外的列導致了問題。但是,我需要一個完整的方法,而不僅僅是一個將轉換表的片段。我計劃在數據綁定情況下使用結果表。 – 2010-07-29 21:07:04

相關問題