提到分页显示数据,首先想到的就是row_number分页,以及传统的TOP分页。这两种函数它们结合order by..asc(升序)/desc(降序)实现查询到的数据分页升/降的显示。它们结合使用可以有很多种查询数据分页显示的写法方案,在前面的存储过程的总结中就有举过案例,这些方案不同点在于平均查询次数所需要的时间的不同,当然是时间越短效率越高。之所以会又提到分页查询这一功能,是在近期WPF学习过程中,案例项目中分页数据显示功能是较为重要的知识点之一,代码比一般的增删查改相比会较为复杂一些。因此结合案例项目,将WPF中对SQL分页查询的使用以及应用程序代码的编译过程到最后功能的实现进行详细的总结归纳。
在数据库中为分页创建封装一个单独公共的存储过程PublicPagingSelect,将所需要的方法判断查询数据的语句都写在这个存储过程中。除开需要声明的一些常用变量,比如表名,返回列,排序类型,页码,尺寸,返回总数,查询条件等。还要定义赋值必需的四个变量以及类型(图中红色框中内容)。变量声明完毕,下面就是判断部分,这里判断返回记录总数@doCount是否为0,不为零就返回所有数据的总共条数。判断完条数,还有排序,页码设置的操作。排序类型也分为0和非0的情况,在排序类型参数@OrderType不为0的情况下,就要执行降序排序。页码的判断就和前面两个参数不一样了,因为我们的首页没有0页这一说,都是第一页开始,所以它的判断都是看@PageIndex该参数是否为1。