以前,觉得winform程序分页很无趣,也没实际意义,直到近期的项目实践中让我认识到原来winform数据列表分页也是非常有必要的,因为由于数据量过大的情况,当窗体在初始加载数据的时候如果不做条件的限制就会是程序假死状态,甚至直接崩溃,那么问题来了,究竟如何做才能达到性能上的优化呢,下面具体讲解实现思路,当然做法不一,如果有大佬有更好的实现方法,还望不吝赐教。

就以Orcle数据库为例,近期的项目数据库运用Oracle数据库,数据量达到百万级别的,也查找了一些数据性能优化的方法,可是还是不能根本解决问题,最后认真思索一番,认为如果数据批量请求不就可以达到目的了吗,后来查询了一系列关于Oralce数据库的分页方法,最终整合了一下达到分页的效果,具体见如下代码:

  public DataTable InstockInfo(int pagesize, int pagenum)
{
int startnum = pagesize * pagenum - (pagesize - 1);
int endnum = pagesize * pagenum;
string sql = @" SELECT * FROM (SELECT tab.*,ROWNUM AS CON FROM ( SELECT INSTOCK_ORDER_NO AS ORDER_NO,(SELECT NAME FROM t_auth_organization WHERE ID=DEPT_ID) AS WH_NAME,INVOICE_NO,PACKAGE_NO AS TRANS_ORDER_NO,(SELECT SUM(BUY_NUM) FROM T_BUSIS_INSTOCK_DETAIL WHERE INSTOCK_ORDER_NO=INS.INSTOCK_ORDER_NO) AS BUY_NUM,SUP_ACCT_CODE,(CASE INSTOCK_STATUS WHEN '0' THEN '未验货' WHEN'1' THEN '已验货' WHEN '2' THEN '已入库' ELSE NULL END)AS STATUS,CREATEBY_NAME AS CREATE_NAME, CREATE_TIME ,(CASE CHECK_STATUS WHEN '0' THEN '否' WHEN '1' THEN '是' ELSE NULL END )AS CHECK_STATUS,DEPT_ID, ZN_CODE,(CASE BILL_SOURCE WHEN '1' THEN '同步' WHEN'2' THEN 'PC自建' WHEN '3' THEN 'PDA自建'WHEN '4' THEN '扣现货' ELSE NULL END) AS BILL_SOURCE,SUP_ACCT_ID FROM T_BUSIS_INSTOCK INS WHERE INSTOCK_TYPE='2' AND INSTOCK_STATUS!='2' ORDER BY CREATE_TIME DESC ) tab WHERE ROWNUM <=" + endnum + ") WHERE CON >="+ startnum + "";
return OracleHelper.ExecuteDataTable(sql);
}

  

可以看到,当初始加载数据的时候,需要传入页码,每页显示数据量两个参数即可,这样就达到了我们在初次加载数据的时候快速的处理数据。同理,SqlServer数据库的处理方式应该也大致类似,这里就不做多的解释了,就留给机智的你去实现了,哈哈O(∩_∩)O哈哈~

CS窗体程序数据列表分页的更多相关文章

  1. wepy小程序实现列表分页上拉加载(2)

    第一篇:wepy小程序实现列表分页上拉加载(1) 本文接着上一篇内容: 4.优化-添加加载动画 (1)首先写加载动画的结构和样式 打开list.wpy文件 template结构代码: <temp ...

  2. wepy小程序实现列表分页上拉加载(1)

    使用wepy开发微信小程序商城第一篇:项目初始化 使用wepy开发微信小程序商城第二篇:路由配置和页面结构 列表页效果图: 1.新建列表页 (1)在pages里面新建一个list.wpy文件 初始代码 ...

  3. 【WPF】闲着没事,写了个支持数据列表分页的帮助类

    支持分页的MVVM组件大家可以网上找,老周这个类只是没事写来娱乐一下的,主要是功能简单,轻量级,至少它满足了我的需求,也许还有未知的 bug . 这个类支持对数据列表进行分页处理,原理是利用 Skip ...

  4. 【C/C++学院】0723-32位与64位/调戏窗体程序/数据分离算法/内存检索/二分查找法/myVC

    [送给在路上的程序猿] 对于一个开发人员而言,能够胜任系统中随意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并能够运用到系统中,由此简化系统的开发,是其架构生涯的第一步. ...

  5. 微信小程序开发——列表分页上拉加载封装实现(订单列表为例,订单状态改变后刷新列表滚动位置不变)

    业务需求: 业务需求是给订单列表添加分页功能,也就是上拉加载这种每次只请求加载固定数量的数据. 需求分析: 对业务来说就是简单的分页上拉加载,但是对于技术实现来说,除了要处理分页数据的累加加载,还要处 ...

  6. SNF软件开发机器人-子系统-功能-数据列表分页与不分页-瀑布式分页-如何配置?

    [列表]分页 1.效果展示: (1)不分页 (2)普通分页 (3)瀑布式分页 2.使用说明: 打开显示页面,点击开发者选项的简单配置按钮.在功能表信息中选择需要的分页方式.普通分页和瀑布式分页需要配合 ...

  7. 从后端到前端之Vue(四)小试牛刀——真实项目的应用(树、tab、数据列表和分页)

    学以致用嘛,学了这么多,在真实项目里面怎么应用呢?带着问题去学习才是最快的学习方式.还是以前的那个项目,前后端分离,现在把前端换成vue的,暂时采用脚本化的方式,然后在尝试工程化的方式. 现在先实现功 ...

  8. 微信小程序中的加载更多(即列表分页)

    1.app.json中: "window": { "enablePullDownRefresh": true //是否开启当前页面下拉刷新 } 2.wxml中: ...

  9. .net窗体程序的基础知识及详细笔记

    第一章:初识Windows程序 1.1:第一个wondows程序 1.1.1:认识windows程序 Form1.cs:窗体文件:程序对窗体编写的代码一般都存放在这个文件(还有拖动控件时的操作和布局, ...

随机推荐

  1. STM32F10x -- 利用IIC协议操作AT24C02

    关于AT24C02芯片的一些参数性能可参考其他的一些相关资料.此处只贴出程序. 宏文件AT24CXX.h #ifndef _AT24CXX_H_ #define _AT24CXX_H_ #includ ...

  2. C#设计模式之九装饰模式(Decorator)【结构型】

    一.引言 今天我们要讲[结构型]设计模式的第三个模式,该模式是[装饰模式].我第一次看到这个名称想到的是另外一个词语“装修”,我就说说我对“装修”的理解吧,大家一定要看清楚,是“装修”,不是“装饰”. ...

  3. 【NOIP模拟】的士碰撞(二分答案)

    Description

  4. 总结HTML5

    都说项目页面是HTML5写的,但是HTML5的特别之处用了多少? 1.是不是页面布局都是统一的div,然后class写样式?可是HTML5提供了好多新标签 ,css中直接用标签名即可定义样式,不用费力 ...

  5. php+Mysql页面注册代码

    页面设置代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF- ...

  6. spacemacs及python学习-坑之记录

    Table of Contents 1. spacemacs 1.1. .spacemacs 文件 1.2. 项目文件 1.3. open shell windows 1.4. emacs基础 1.4 ...

  7. xml读取一行数据

    #include<map>#include<iostream>#include<fstream>#include<string>using namesp ...

  8. Windows下的lua-5.3.4安装过程

    Windows下的lua-5.3.4安装过程 Mingw平台下的编译过程: $ make echo$ make mingw$ make local $ make echo PLAT= none CC= ...

  9. BZOJ-1968

    1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 2308  Solved: 1768[Submit] ...

  10. CSS3中的属性介绍

    概念:给文字添加阴影 语法:text-shadow: length length length color 介绍:前两个参数为阴影离开文字的横方向位移距离与纵方向位移距离.使用时前两个参数必须指定,也 ...