当前位置: 首页 > news >正文

C# 动态 条件 组合_C# Win Form 记录集分页显示的实现

Win Form进行信息化系统开发时需要查询后台数据库,并将后台数据库查询结果显示到前端界面中。当查询结果记录集条数较多时一般采用分页显示,目前再使用不同程序语言进行信息系统开发时都可直接调用各类程序自带或者第三方组件实现分页显示功能。本文主要针对培训需求自己编写分页显示功能。首先给出分页显示最终实现效果,效果如下图所示:

2a4a56ee57c94008a119ecee4ec3e05e

分页显示功能实现效果


分页显示效果如上图所示,该练习中通过下拉列表菜单确定查询筛选的条件,并按照筛选条件进行筛选,将符合条件的数据存储到内存datatable中并动态写入DataGridView,查询结果多与10条记录时,DataGridView只允许显示10条记录。用户可通过控件下部按钮进行不同页之间的切换。设计及编码思路描述如下:

1、查询结果存储到DataSet ds中并写入DataGridView

在完成数据查询之后需要将数据写入ds并从ds中读取前10条记录到datavridview控件中。通过计数变量控制写入10条记录。并使用变量page保存当前页数(后期通过页数进行不同类型跳转)

1024cb8d862041df8a89bf7716a43121

写入首页10条记录

2、下一页按钮功能实现

点击下一页时首先需要判断当前页page与总页数allpage之间关系,如果相等则表明当前已经最后一页,通过MessageBox给出用户操作提示并结束事件。

dc8d166be4c940b3a76b1992c82f49b2

判断是否最后页面

如果不是最后一页,则通过当前页去计算点击之后需要查询的记录的起始位置,通过起始位置确定所需读取的记录集,这个过程需要考虑在非最后页,每页显示10条记录,比较好计算,当点击之后是最后一页的话,记录结束的位置就是最后一条记录位置。因此需要根据实际情况判断开始结束位置。

2e1548d34b1a4f0cbd2ae62ed9aa1657

计算开始结束位置

计算开始结束位置代码如上,在计算结束时,采用三目运算符对结束是否是最后一页进行判断,不是最后一页则结束位置为开始位置开始位置加9,如果最后一页结束位置为记录集条数。在明确开始结束位置后,则可对ds按照条件进行读取,并将读取结果显示DataGridView中。实现代码如下:

c4aeec0f306f4e54959420745916d7f5

下一页读取显示数据代码

3、其余按钮功能实现

由于篇幅限制,其余按钮功能实现不再详细说明,简单讲就是需要对写入DataGridView中记录开始位置与结束位置进行判断,在遍历ds记录集时按照结束与开始位置进行筛选,符合条件的写入DataGridView中。另外需要对一些特殊情况结合总页数allpage与当前页page进行判断 ,如当前第一页时,用户点击上一页,当前最后一页时用户点击下一页。完整功能实现gif动图如下:

666b1e5244ca417a842514b13beb6b77

实现效果gif图


本头条号长期关注于青少年编程资讯分享;编程课程、素材、代码分享及青少年编程培训。如果您对以上方面有兴趣,可关注该头条号,如有编程学习问题可以联系作者,共同探讨。

往期内容分享如下:

  1. Win Form登录框本地记住密码功能实现
  2. C# Win Form 编程实现图片的数据库存储
  3. C# Win Form 实现XML文件读写
  4. C# Win Form 读取CSV文件数据
  5. C# Win Form 动态添加CheckBox控件
  6. C# Win Form 窗体间传递参数的几种方法总结
  7. C# win Form开发 构造指定格式数据表字段值

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python 定义字符串变量_Python中什么是变量Python中定义字符串
  • 彪哥搞笑新闻
  • python爬虫登录网站_Python爬虫实例(四)网站模拟登陆
  • 东北大学校园小品,爆笑143次的,值得一看
  • python中类的定义方法_python中类的定义方法
  • infoq中文站 发布《Grails入门指南 》中文版
  • python网络通信框架_Python——Twisted框架(网络通信)
  • 品味SQL Server 2005的几个新功能
  • 金数据从excel导入时间数据会出错_网易严选数据产品实践
  • 基于Java Socket的文件UpLoad代码(完美版)-用递归解决java的目录树遍历
  • python变量定义是什么意思_抽象理解python中变量的定义过程
  • 游标的应用
  • kaggle比赛_由kaggle的一个失败的比赛引出一个CVR的小问题
  • 存储过程
  • 启动子级时出错_买面粉不能只看价格,看准包装上这两点,买面粉不出错
  • ----------
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2017-08-04 前端日报
  • Apache Spark Streaming 使用实例
  • HTTP那些事
  • interface和setter,getter
  • 计算机常识 - 收藏集 - 掘金
  • 记一次和乔布斯合作最难忘的经历
  • 记一次用 NodeJs 实现模拟登录的思路
  • 类orAPI - 收藏集 - 掘金
  • 前端之Sass/Scss实战笔记
  • 使用 Docker 部署 Spring Boot项目
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 收藏好这篇,别再只说“数据劫持”了
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 为什么要用IPython/Jupyter?
  • 移动端解决方案学习记录
  • 因为阿里,他们成了“杭漂”
  • 运行时添加log4j2的appender
  • AI算硅基生命吗,为什么?
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • (02)Unity使用在线AI大模型(调用Python)
  • (1)虚拟机的安装与使用,linux系统安装
  • (C语言)球球大作战
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (补充)IDEA项目结构
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (六)软件测试分工
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • .gitignore文件—git忽略文件
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET命名规范和开发约定
  • //TODO 注释的作用
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • [04]Web前端进阶—JS伪数组
  • [10] CUDA程序性能的提升 与 流
  • [145] 二叉树的后序遍历 js
  • [18] Opencv_CUDA应用之 基于颜色的对象检测与跟踪