【问题标题】:Datatable Compute Method filter on row number基于行号的数据表计算方法过滤器
【发布时间】:2013-10-18 16:54:42
【问题描述】:

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

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

我必须在查询中包含行号还是有更好的解决方案(如下所述)?

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

【问题讨论】:

    标签: vb.net linq datatable aggregate-functions


    【解决方案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) 进行分页并计算返回行的聚合函数。但这可能与您当前的应用程序结构有很大不同。

    【讨论】:

    • 感谢您的帮助。我已经设法使用 Linq (Skip Take) 实现分页。关于上面使用的计算方法,我已经提出了一个单独的问题link。任何意见将不胜感激。
    猜你喜欢
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 2017-09-08
    • 2018-06-23
    相关资源
    最近更新 更多