- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WinForms中DataGridView控件做一个类似于网站那样的分页功能前几天有学员问了我一个问题,如何使用WinForms中DataGridView控件做一个类似于网站那样的分页功能!今天我放到空间里面,希望大家都能学会并且能够在开发中去使用它! ???? 首先大家需要知道,为什么我们在开发中需要使用分页这一技术!那么今天我就来和大家一起讨论一下,在实际开发过程中,我们的数据库表里的数据肯定不止那么几条,没有经验的程序员往往会把表里的数据在Form_Load()事件里通过DataGirdView控件全部加载出来!那么这样的话给我们带来一个问题!也就是说如果数据库表里的数据非常多的情况下(10万条或100条),全部加载出来肯定会非常的慢,这就给程序的性能带来了一些问题,给我们的客户也带来了一些负面影响.那么我们如何解决这样的问题呢??这就需要使用到我们刚刚提到的分页! ???? 具体的说,什么是分页呢?分页说白了就是一次我只加载那么几条数据,不需要把数据全部一次性加载出来,需要时再次加载,那么这样做的话就解决了我们刚刚提到的性能问题了! ???? 废话少说,开始讲解如何使用这一技术了,在WinForms中使用DataGridView控件分页有两种情况:一、真分页.二、假分页。好,既然分了两种情况,那么我们就来谈一下什么是真分页,什么是假分页?先谈假分页吧!我们都知道,在C#中使用ADO.NET访问数据库中的数据,以Sql Server为例,需要使用一个叫SqlDataAdapter的对象的Fill()方法来填充数据集,DataSet是一个虚拟表,在WinForms中操作数据其实就是操作SqlDataAdapter对象填充的DataSet,假分页就是把数据库的数据通过SqlDataAdapter对象填充到数据集里。然后在WinForms中或者在ASP.NET只显示DataSet里一条或者几条数据,这样也可以实现一个分页。但是这样做根本没有实际的意义,为什么呢?很简单,因为程序还是把数据库里的数据全部加载到DataSet里,只不过我们控制它的显示而已!这样,性能一点没有得到提升。大家可以实际的操作一下。这里我就不去演示了,今天我所讲的是真分页。真分页就是我要多少条数据,SqlDataAdapter对象就去数据库取多少条数据,那么这样的话在性能上就得到了一个很大的提升。因为我填充DataSet时只需要填充提取出来的数据! ?? 好了,说了这么多理论概念,下面我就把实现好的代码添出来,大家可以参考一下: ?? 1、在使用真分页时需要使用T-SQL创建一个分页的存储过程,具体代码如下: CREATE PROCEDURE proc_Page @Table VARCHAR(1000), --表名 @Primarykey VARCHAR(100), --主键 @Condition VARCHAR(5000), --查询条件 @PageNumber INT,?? --开始页数 @PageSize INT,?? --每页大小 @IsCount BIT?? --是否获得记录数,0为否 AS ?? DECLARE @SQL VARCHAR(8000) ?? IF @IsCount != 0 ?????? SET @SQL = SELECT Count(*) FROM + @Table + WHERE + @Condition ?? ELSE ???? BEGIN ?????? IF @PageNumber = 1 ?????????? SET @SQL = SELECT TOP + STR(@PageSize) + * FROM + @Table + WHERE + @Condition ?????? ELSE ?????????? SET @SQL = SELECT TOP + STR(@PageSize) + * FROM + @Table + ?????????? WHERE + @Primarykey + NOT IN (SELECT TOP + STR(@PageSize*(@PageNumber - 1)) + + @Primarykey + FROM + @Table + WHERE + @Condition +?? ) AND + @Condition ???? END ?? EXEC(@SQL) ?? 2、写完存储过程之后,下面就是建一个Windows窗体应用程序。首先在窗体里拖放一个DataGridView控件,将name属性修改为dgbPage,在拖放四个Button,第一个Text值为首页,name属性为btnFirst,第
您可能关注的文档
最近下载
- 法律职业资格(主观题)历年真题摘选附带答案2024.docx VIP
- 用于皮秒脉冲产生的级联阶跃二极管电路.pdf VIP
- 课外古诗词诵读《梁甫行》课件(共24张ppt)2025-2026学年统编版语文八年级上册.pptx VIP
- 2023高考诗歌鉴赏专项练习:表达技巧4-写景手法(典例引领+方法技巧+巩固训练+答案解析).docx VIP
- 纪念九一八主题班会课件学习资料.ppt VIP
- 佛山市教育局1.pdf VIP
- 基于场效应管与阶跃恢复二极管的皮秒级脉冲源设计.PDF
- 2025法律职业资格(主观题)历年真题摘选附带答案.docx VIP
- 贵阳机场通行证考试试题及答案.doc VIP
- 学校类物业管理投标文件技术部分完整规范模板.doc VIP
文档评论(0)