2011-07-04 68 views
0

我有一個強類型DataTable從強類型DataSet返回從數據庫查詢。隨後將DataSet傳遞給ReportViewer以基於數據的某些方面顯示圖表。使用Linq鍵入的數據集計算列使用Linq

我已經爲數據集添加了一個額外的列,並且我正在循環查看基於數據庫返回的列之一的此新列的值。

計算列是一個單字節值,它只是另一列的第一個元素,它是一個字節數組。

 foreach (ReportData.EventRangeRow row in ReportData.EventRange) 
     { 
      byte[] analysis = (byte[]) row[ReportData.EventRange.analysisColumn]; 

      row[ReportData.EventRange.first_analysisColumn] = analysis[0]; 
     } 

顯然,我的解決方案的工作,但有一點笨拙,所以我想知道是否有人能提出的是自動計算列的類型化數據集的一部分,或者如果沒有,一個LINQ聲明,將實現方式相同。

謝謝!

+0

你只需要在此的ReportViewer計算值?也許你應該在報告中做一個表達而不修改數據集?有許多聚合功能,如總和,最後,最大,最小值,計數等。 – Martin

+0

您好Martin,我沒有意識到這是可能的 - 如果您能指出我在正確的方向回答我會接受它。 – Nick

回答

1

您可以對報告本身做很多計算,而不是擴展您的數據集。

比方說,你有一個連接到你的報告的數據源「MyDataTable」。 然後拖動文本框到它的報告,然後右鍵單擊,然後選擇表達,你會得到書面表達一個很好的窗口,有很多的例子

集合函數可... =第一(場!MyColumn。值,「MyDataTable」)

檢查類別下的窗口中的例子「常用功能 - >彙總」

+0

我假設您正在使用Microsoft ReportViewer進行報告? – Martin

+0

是的,Microsoft ReportViewer。 – Nick