使用Linq键入数据集计算列

时间:2011-07-04 09:40:00

标签: c# linq dataset calculated-columns

我在数据库查询的强类型DataTable中返回了强类型DataSetDataSet随后传递给ReportViewer,以根据数据的某些方面显示图表。

我在数据集中添加了一个额外的列,我循环遍历表,根据从数据库返回的列之一计算此新列的值。

计算列是单字节值,它只是另一列的第一个元素,它是一个字节数组。

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

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

显然我的解决方案有效,但有点笨拙,所以我想知道是否有人可以建议一种方法来自动计算列作为类型​​化数据集的一部分,如果不是,一个linq语句将实现相同。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以对报告本身进行多次计算,而不是扩展数据集。

假设您有一个数据源“MyDataTable”连接到您的报告。 然后将文本框拖到报表上并右键单击它然后选择表达式,您将获得一个很好的窗口,用于编写包含大量示例的表达式

一个集合函数可能是...... = First(Fields!MyColumn.Value,“MyDataTable”)

检查窗口中“常用功能 - >聚合”类别

下的示例