A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


最近自己在练习Winform,用到DataGridView绑定数据,后来感觉数据太多会显示滚动条,很麻烦,想定义一个类似Web方面的分页控件【最好定义成用户控件,这样可用性比较高】,

在网上也搜了分页的用户控件,整体思路还是不明确,有的说需要用到存储过程,有的没有,现在脑子很乱,没有具体的思路了

我要实现的用户控件的格式附件所示:

ceaec3cec3fdfc035a882b02d63f8794a5c2266e.png (77.8 KB, 下载次数: 75)

用户控件分页布局

用户控件分页布局

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

5 个回复

正序浏览
分页从数据库读
select * from
(select *,rn = row_number() over(order by 根据那一列进行排序) from 哪一张表) as t
where t.rn between (当前页数-1)*每页条数+1 and 当前页数*每页条数

rn是根据方法生成的类似于自动编号的东西

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
我觉得效率不会低 比如分页 一页五条 那每次只查询5条数据
回复 使用道具 举报
1:现在疑问是从数据库中读取的数据怎么通过分页实现?是翻一页再重新通过SQL语句读取一遍数据库吗?大数据不就效率很低了?

现在思路很模糊,。。。。。。
回复 使用道具 举报
分页的基本思路 就是用到了存储过程执行动态拼接的Sql语句 每翻一次页 根据相应的参数查询一次 在绑定数据源

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
具体思路该怎么写呢?
我现在知道需要定义:
int PageSize=0; //每页显示条数
int nMax = 0; //总记录数
int pageCount = 0; //页数=总记录数/每页显示行数
intpageCurrent = 0;//当前页号
intnCurrent = 0;//当前记录行

后面就不清楚该怎么写了,从数据库从读取的DataSet直接传过来然后分页显示,还是什么?完全迷了,以前都是直接传给DataGridView的DataSource,就可以显示了;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马