简单说下 Winform 的分页快速开发框架必须要实现的几个功能之一

分页非为前端分页  和 后端分页,前端分页只有适用于B/S,B/S的呈现速度远远不如C/S,而C/S则没有这个问题,所以分页必然是后端分页

这里先要说明WinForm分页和Web分页都会存在一个问题:查两次(一次取得页面总数,一次取得当前页数据)

所以分页是需要数据特别大的时候才具有优化的意义,比如查询100条数据是1ms 查询1000条数据是1.1s如果使用分页,那么查询的耗时基本上就是2ms(算上嵌套查询的话是3ms),so自行掂量

控件网上有很多不多说了

说下sql(EF的略过)

-------这就是多出的一次查询,为了取得总的页数
DECLARE @Total INT
SELECT @Total = COUNT(0)
FROM Sys_Button A
WHERE 1 = 1
AND A.IsDelete = 0
AND ISNULL(A.Button_Name,'') LIKE '%'+ ISNULL(@cButton_Name,ISNULL(A.Button_Name,'')) +'%'
AND ISNULL(A.Button_Nick,'') LIKE '%'+ ISNULL(@cButton_Nick,ISNULL(A.Button_Nick,'')) +'%'
AND ISNULL(A.Button_Hint,'') LIKE '%'+ ISNULL(@cButton_Hint,ISNULL(A.Button_Hint,'')) +'%'
AND ISNULL(A.Button_Sub,'') LIKE '%'+ ISNULL(@cButton_Sub,ISNULL(A.Button_Sub,'')) +'%' SELECT B.* FROM( SELECT A.Button_Id ,A.Button_Name ,
----这里就是重点实现分页的代码了
@Total PageRecord ,ROW_NUMBER() OVER (ORDER BY Page_Nick,A.Button_Sort ) Record_Id, (@Total / @PageSize) + 1 PageCount
FROM Sys_Button A
LEFT JOIN Sys_Page B ON A.Button_Page = B.Page_Id
WHERE 1 = 1
AND A.IsDelete = 0
AND ISNULL(A.Button_Name,'') LIKE '%'+ ISNULL(@cButton_Name,ISNULL(A.Button_Name,'')) +'%'
AND ISNULL(A.Button_Nick,'') LIKE '%'+ ISNULL(@cButton_Nick,ISNULL(A.Button_Nick,'')) +'%'
AND ISNULL(A.Button_Hint,'') LIKE '%'+ ISNULL(@cButton_Hint,ISNULL(A.Button_Hint,'')) +'%'
AND ISNULL(A.Button_Sub,'') LIKE '%'+ ISNULL(@cButton_Sub,ISNULL(A.Button_Sub,'')) +'%' ) B
WHERE B.Record_Id > (@PageIndex - 1) * @PageSize
AND B.Record_Id <= (@PageIndex) * @PageSize
ORDER BY Page_Nick, Button_Sort

简单说下 Winform 的分页快速开发框架必须要实现的几个功能之一的更多相关文章

  1. ABP开发框架前后端开发系列---(14)基于Winform的ABP快速开发框架

    前面介绍了很多ABP系列的文章,一步一步的把我们日常开发中涉及到的Web API服务构建.登录日志和操作审计日志.字典管理模块.省份城市的信息维护.权限管理模块中的组织机构.用户.角色.权限.菜单等内 ...

  2. .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序

    .NET 跨平台RPC框架DotNettyRPC   DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...

  3. Mario是一个基于.NETCore的简单快速开发框架

    Mario .NET Core简单快速开发框架 Mario是一个基于.NET Core的简单快速开发框架 GitHub:https://github.com/deeround/Mario 技术特点 基 ...

  4. 力软信息化系统快速开发框架 web端+winform端

    力软信息化系统快速开发框架是一套集权限管理+快速开发+动态接口+通用组件+动态UI于一体的全新.net信息化快速开发框架.力软信息化系统快速开发框架的使用,大大地缩短了开发周期,提高了软件质量,同时也 ...

  5. 浅谈快速开发框架的分层(WinForm)

    对于B/S都是MVC好不好 不多说了,反正大家都这么用 这里简单说下C/S 首先常用的几种: 模仿B/S的MVC  也有人称之为 MVP 还有MVVM这种真心觉得够够的了,当然也有其优势所在,这里不讨 ...

  6. 一个基于 .NET Core 2.0 开发的简单易用的快速开发框架 - LinFx

    LinFx 一个基于 .NET Core 2.0 开发的简单易用的快速开发框架,遵循领域驱动设计(DDD)规范约束,提供实现事件驱动.事件回溯.响应式等特性的基础设施.让开发者享受到正真意义的面向对象 ...

  7. Winform 快速开发框架,上位机开发,工控机程序开发,CS程序开发

    1.当客户让你做个CS程序时,当你手上一穷二白,所有都要重复造轮,你是不是很烦. 2.但如果有一个通用的,快速开发框架,就可以把你从这些基础的工作解救出来,你专注做业务就好了. 3.本人其中一个项目的 ...

  8. Web后台快速开发框架(.NET Core)

    Web后台快速开发框架(.NET Core) Coldairarrow 目录 目录 第1章    目录    1 第2章    简介    3 第3章    基础准备    4 3.1    开发环境 ...

  9. Web后台快速开发框架

    Web后台快速开发框架 Coldairarrow 目录 目录 第1章    目录    1 第2章    简介    3 第3章    基础准备    4 3.1    开发环境要求    4 3.2 ...

随机推荐

  1. Python学习笔记(六)

    Python学习笔记(六) Ubuntu重置root密码 Ubuntu 16.4 目录结构 Ubuntu 命令讲解 1. Ubuntu重置root密码 启动系统,显示GRUB选择菜单(如果默认系统启动 ...

  2. Android基础知识04—Activity活动之间传递数据

    ------活动之间传递数据------ 向下一个活动传递数据: Intent中提供了一系列的putExtra()方法,可以把数据暂存到Intent中,启动另一个活动的时候就可以取出来. 代码: (存 ...

  3. 解决Ubuntu中phpmyadmin对数据上传上限2M

    本文部分参考自:http://www.myhack58.com/Article/sort099/sort0102/2011/29396.htm 原文有少量错误或者过时的(相对于ubuntu15来说)内 ...

  4. cocoapods导入第三方库提示RPC failed curl 18 transfer

    错误提示: error: RPC failed; curl 18 transfer closed with outstanding read data remaining fatal: The rem ...

  5. C# App 中嵌入 Chrome 浏览器

    http://www.codeceo.com/article/cefsharp-charp-app-chrome.html http://developer.51cto.com/art/201304/ ...

  6. HTTPS和HTTP有什么区别?如何将HTTP转化成HTTPS

    不知道大家有没有注意到输入网址时的HTTP部分,在打开网站进行操作时有时候会自动跳转为HTTPS格式,这是为什么?HTTP与HTTPS到底有什么区别?如何将HTTP转化成HTTPS,针对这些问题,我们 ...

  7. jQuery+Ajax+PHP实现异步分页数据显示

    这几天做毕业设计的时候需要使用到一个异步分页的功能,即翻页的时候只是刷新分页的数据而不是刷新整个页面.因为之前做项目的时候没有做过这方面的功能,所以还是纠结了挺长时间的,在网上也找了很多资料,结合自己 ...

  8. LeetCode 56. Merge Intervals (合并区间)

    Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,1 ...

  9. iOS之 Category 属性 的理解

    在 Objective-C 中可以通过 Category 给一个现有的类添加属性,但是却不能添加实例变量 反正读第一遍的时候我是有点晕的,可以添加“属性”,然后又说“添加实例变量”,第一感觉就好像 有 ...

  10. 读书笔记-你不知道的JS上-词法作用域

    JS引擎 编译与执行 Javascript引擎会在词法分析和代码生成阶段对运行性能进行优化,包含对冗余元素进行优化(例如对语句在不影响结果的情况下进行重新组合). 对于Javascript来说,大部分 ...