今天写点啥呢?就数据分页吧。同事说你直接将所有数据库中的数据都返回给我好了,我一并处理。但我说还好现在就几十条测试数据的,如果说是上万条,几十万条数据,我一下子查询数据库都打包发给你,你还要解析,那客户点击了个查询按钮,按照这样做要等到猴年马月,所以说,服务器端只能一点一点的返回给你才是最佳解决方案!

sql数据分页有几种方法,首先用最简单最原始的方法,选择top10:

select top 10 * from Student
where id not in(select top(10*@pageIndex) id from Student order by id)
order by id




@pageIndex是第几页,10代表每页的条数

查询出来的结果:


[SQL]学习一下sql数据分页_数据

其他方法:

select * from   /*分页查询所有数据*/

     (select *,row_number() ober(order by id desc) as num  /*row_number()定义新行为num*/
      from student) as table  /*查出新表名为 table*/

where table.num between 0*10+1 and 1*10  
/*  从新表table中查询第0页到第一页的数据 每页10条*/



还有一种就是选择从多少到多少的记录的sql分页语句

select * from (select *,row_number() over (order by Id asc) as num from T_Products) as s where s.num between 3 and 5;


说明:C#创建数据对象模型的时候,如果数据库中对应的字段可能为空,那么对象模型的属性在创建的时候就要判断,如果是值类型的就必须要写成int?number,如果是引用类型的则不需要,例如string类型就属于引用类型的,数据库中是null的话,对应读取到的还是null。

[SQL]学习一下sql数据分页_分页_02