前言:
对于sql的分页来说,有真分页和假分页只说,实现的方法有很多种,不同的实现效率不同。“真分页”是效率更高,面对庞大的数据量也能轻松应对,但是缺点便是每次都需要和后台交互。“假分页”不需要和后台交互,但是一旦面对大数据量时,加载将十分缓慢,影响用户的体验。这次小编通过简单的demo给出真分页的一种实现方法。
核心代码:
//查询数据--带条件查询
int start = (page - 1) * rows + 1;// page:第几页
int end = start + rows - 1; //rows:每页的行数
string sql = @"select * from (select c.ID,row_number() over(order by c.ID) as num
from dbo.Table c
where 1=1";
if (strID!="")
{
sql = sql + " and ID like '%" + strID + "%'";
}
sql = sql + ") TT where TT.num between " + start + " and " + end;
SqlParameter[] paras = new SqlParameter[] {
new SqlParameter("@strID", strID),
};
dt = sqlHelper.ExecuteQuery(sql, paras, CommandType.Text);
总结:
这属于真分页的一种简单的实现,将模糊查询的参数(有必要的话加上),当前页数page,每页的行数rows传到后台,就可以实现分页查询,在这之前还有做一件事情,就是通过查询利用count求出数据的总条数,这样就能实现简单的分页。