我正在使用Windows Form Application我有一个包含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条记录
答案 0 :(得分:1)
你可以跳过并拍摄。
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();
答案 1 :(得分:1)
您可以使用Skip()
和Take()
功能。更好的选择是将页面索引和每页行数作为参数发送到您的函数:
DataTable rec = dt.Rows.Cast<DataRow>()
.OrderBy(x => x["RegNo"])
.Skip(rowsCount * pageIndex)
.Take(rowsCount)
.CopyToDataTable();