如何从 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();
我正在处理 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();