如何从 DataTable C# 中获取每隔 100 行

How to Fetch Every Next 100 rows from DataTable C#

我正在处理 Windows 表单应用程序我有一个包含 1000 行的 DataTable 并且为了分页我的 DataGridView 我正在像这样从 DataTable 中获取前 100 条记录

DataTable rec = dt.Rows.Cast<DataRow>().OrderBy(x => x["RegNo"]).Take(100).CopyToDataTable();

这个我也试过

DataTable recc = dt.Rows.Cast<DataRow>().OrderBy(x => x["RegNo"]).Take(100).Skip(100).CopyToDataTable();

问题: 如何在用户单击下一页等时从 DataTable 中获取下 100 条记录

你可以跳过并拿走。

DataTable rec = dt.Rows.Cast<DataRow>().OrderBy(x => x["RegNo"]).Skip(100).Take(100).CopyToDataTable();

您可以有一个跟踪当前页面的变量。

var currPage = 1;
var page_size = 100;
var skip = currPage * page_size; //if 100 is page size......

    DataTable rec = dt.Rows.Cast<DataRow>().OrderBy(x => x["RegNo"]).Skip(skip).Take(page_size).CopyToDataTable();

您可以使用 Skip()Take() 函数。更好的选择是将页面索引和每页行数作为参数发送给您的函数:

DataTable rec = dt.Rows.Cast<DataRow>()
                       .OrderBy(x => x["RegNo"])
                       .Skip(rowsCount * pageIndex)
                       .Take(rowsCount)
                       .CopyToDataTable();