数据表计算方法过滤行号

时间:2012-09-19 12:20:42

标签: vb.net linq datatable aggregate-functions

我使用一个查询来获取50条记录并将其传递给数据表。然后以表格格式显示该记录。显示器使用分页,一次显示10条记录。有一种设施可以移动到下一组或前一组记录,或向前或向后移动1条记录。

我必须找到当前可见的记录集的列的最小值和最大值。我打算使用Compute方法,但我不确定它是否允许过滤除datatable中的列以外的任何内容。

我是否必须在查询中包含行号,或者是否有更好的解决方案(下面提到的内容)?

CType(dtLineup.Compute("Min(ArrivalDate)", dt.row(2) to dt.row(12)), Date)

1 个答案:

答案 0 :(得分:1)

MSDN on DataColumn.Expression中的伪代码没有任何内容。正如您所说,您可以在查询中包含行号,但另一种方法是在数据表中添加行号列并在过滤器表达式中使用它。

DataColumn col = new DataColumn("rownumber", typeof(int));
col.AutoIncrement = true;
col.AutoIncrementSeed = 1;
datatable.Columns.Add(col);

另一个替代方法是通过linq(Skip-Take)进行分页,并计算返回行的聚合函数。但这可能是您当前应用程序结构的主要偏差。

相关问题