第一种、从DataSet里筛选分页行的数据
private DataSet Pageing(DataTable dt, int pageIndex, int pageSize, out int totalCount)
{
DataSet reDs = new DataSet();
DataTable reDt = dt.Clone();
DataRow totalRow = reDt.NewRow();
totalCount = dt.Rows.Count;
if (pageIndex > -1)
{
int start = pageSize * pageIndex;
int sum = pageSize;
//页码超出数据范围,输出第一页数据
if (totalCount < start) start = 0;
if (totalCount < sum + start)
{
sum = totalCount - start;
}
for (int i = start; i < start + sum; i++)
{
reDt.ImportRow(dt.Rows[i]);
}
}
reDs.Tables.Add(reDt);
reDs.RemotingFormat = SerializationFormat.Binary;
return reDs;
}
第二种、直接SQL语句ROW_NUMGER() OVER(ORDER BY T.ID DESC)
select * from ( select ROW_NUMBER() over(order by t.id desc ) as Row,t.* from TB_CompanyArea t where t.CreatedTime<'2016-03-30 23:59:59.000 ' )tt where tt.Row between startIndex and endIndex