讨论一个分页的思路(有高手没)

bluecyclone 2007-03-29 06:10:06
能不能部统计总记录数,进行分页显示?
...全文
484 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
seaer06 2007-04-03
  • 打赏
  • 举报
回复
1\读取数据总数.
2\计算能分几页.
3\通过SQL语句.读取数据.
4\通过dataadapter.fill(dataset,startno,count,"tablename");
来分页
bluecyclone 2007-04-03
  • 打赏
  • 举报
回复
自己笨了一把,哈哈..
bluecyclone 2007-04-03
  • 打赏
  • 举报
回复
思路解决了...
回头有时间我把方案拿出来哈...
感谢w59879213() ...
dcbr4 2007-04-02
  • 打赏
  • 举报
回复
那你就返回一个值指示是否还有下一页,有就显示下一页,没有就不显示了,这样总页数就不能显示了
Jeremiah 2007-04-02
  • 打赏
  • 举报
回复
如果是30W条记录呢???还用.net控件,一下子读出来再分页????

客户端谁的机器能受得了这些个啊...

我感觉如果翻到最后一页的下一页应该就是null了,每一次翻页之前记录一下当前的页数,如果为空则返回前一页就成...
bluecyclone 2007-04-02
  • 打赏
  • 举报
回复
我感觉这样可以实现,就是到最后一页的时候,不容易判断。

前提:用存储过程分页的情况下,每次只读取相应的记录。假如说,每页10条数据,前面的页,可以用是否等于10条来判断,最后一页如果刚好等于十条,这个就不好判断了....


谁有更好的思路,欢迎大家来讨论。
Xpengfee 2007-03-29
  • 打赏
  • 举报
回复
不知道总页数,怎么知道要分多少页??
webdiyer 2007-03-29
  • 打赏
  • 举报
回复
不知道记录总数也可以分页,问题是这样你就无法知道到底有多少页,显示多少个分页导航按钮,显示多了用户点了后面的导航按钮后打开的就是没有数据的页面,显示少了后边的数据又显示不出来,所以获取记录总数还是必需的,至于生成分页导航链接,可以试试我写的这个免费分页控件:http://www.webdiyer.com
hy_lihuan 2007-03-29
  • 打赏
  • 举报
回复
大家要想到 你们用的是.net 黑多东西是封装好了的
即使自己分业也只需要一次查找 把数据放到数据放到数据集里面 如dataset 要种数或其他数据操作就不用在去连数据库了
如求总的记录数 只需dataset.table["表名"].count属性就知道了

这位:你弄错了一件事情,那就是分页不是为了好看,如果要好看直接用DataGrid的分页就好了;而是在数据量巨大的情况下(检索出几万条数据),可是只读取我们能够看到的数据,减少内存的开销;所以使用分页以后在dataset中的仅仅就一个页面的数据量!
xiaoliangwh 2007-03-29
  • 打赏
  • 举报
回复
up
coolbyefish 2007-03-29
  • 打赏
  • 举报
回复
大家要想到 你们用的是.net 黑多东西是封装好了的
即使自己分业也只需要一次查找 把数据放到数据放到数据集里面 如dataset 要种数或其他数据操作就不用在去连数据库了
如求总的记录数 只需dataset.table["表名"].count属性就知道了
hertcloud 2007-03-29
  • 打赏
  • 举报
回复
读取 某页的数据 是不需要总数
一般 分页算法 都会 读取 总数
这个是因为 你显示出来的 分页按钮 需要知道 总页数 每页大小 才能统计有多少页啊

分页算法
http://blog.csdn.net/hertcloud/category/281167.aspx
  • 打赏
  • 举报
回复
不过这大概在你做比较费时的人工智能搜索算法的结果展示的时候才会非常需要。
io135 2007-03-29
  • 打赏
  • 举报
回复
不对吧, 楼上, 那以你所说, 怎么得到总页数呢?

其实好象有个Datasetsource类是专门设置分页的.

以前我不知道.嫌DataGrid的分页功能不好用.就自己写了一个!

其实分页书不难,难就难在把页码数和相应的记录对应起来. 有点麻烦!

先判断是不是第一页, 如果是的话,再判断是否小于分页时你定的常量值,如果小于的话,则直接游历完. 如果否的话, 则直接游历到你定义的那么常量值的位置.

其他的页更麻烦,因为牵涉到前一页,后一页的问题,反正写起来很麻烦!
seiya_guan 2007-03-29
  • 打赏
  • 举报
回复
SELECT TOP 页大小 * FROM TestTable WHERE (ID NOT IN
(SELECT TOP 页大小*页数 id FROM 表 ORDER BY id))
ORDER BY ID
这样符合你的要求。
  • 打赏
  • 举报
回复
“然后再遍历一页的记录” ->

应该是遍历一页上显示信息所需要的记录。例如一页显示20行记录,但是需要判断后边5页是否有记录,就要再将游标 MoveNext(100) 条记录。
io135 2007-03-29
  • 打赏
  • 举报
回复
我写过,步骤如下:

1: 得到总记录数, 这个很好办.
2: 用一个常量,表明每页需要显示的记录. 用一个变量得到分页后的页数.
3: 用页数 = 记录数/常量 ,如果有余数 ,则页数+1. 也就是取模.

然后下一步就是具体把页数跟 ,记录对应起来!
  • 打赏
  • 举报
回复
按理论说,分页的算法根本就不需要知道总记录数。

仅需要从查询结果的开头开始遍历,忽略在前面页面的记录(不需要读记录),然后再遍历一页的记录,然后就结束,后边的记录不需要读取。获取总记录数需要多花许多时间。

asp.net控件的分页功能默认也都不显示总记录、总页数。显示总记录数或者总页数,是一些控件给你创意出来的高级的功能。
HenryXiaoY 2007-03-29
  • 打赏
  • 举报
回复
直接用个GridView就可以了吧。少写很多代码
phisy 2007-03-29
  • 打赏
  • 举报
回复
count(*)最好是使用Count(ID)
加载更多回复(4)
看雪学堂经典整理, 【专题四】Rootkit的学习与研究 Rootkit是什么?估计很多朋友并不明白,简单的说,Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他恶意程序结合使用。Rootkit通过加载特殊的驱动,修改系统内核,进而达到隐藏信息的目的。技术是双刃剑,我们研究它的目的在于,透过我们的研究,用这项技术来保护我们的系统,使我们的系统更加健壮,充分发挥这个技术的正面应用。 对于ROOTKIT专题的研究,主要涉及的技术有如下部分: 1. 内核hook 对于hook,从ring3有很多,ring3到ring0也有很多,根据api调用环节递进的顺序,在每一个环节都有hook的机会,可以有int 2e或者sysenter hook,ssdt hook,inline hook ,irp hook,object hook,idt hook等等。在这里,我们逐个介绍。 1)object hook 2)ssdt hook 3)inline-hook 4)idt hook 5)IRP hook 6)SYSENTER hook 7)IAT HOOK 8)EAT HOOK 2. 保护模式篇章第一部分: ring3进ring0之门 1)通过调用门访问内核 2)通过中断门访问内核 3)通过任务门访问内核 4)通过陷阱门访问内核 3。保护模式篇章第二部分:windows分页机制 1)windows分页机制 4。保护模式篇章第三部分:直接访问硬件 1)修改iopl,ring3直接访问硬件 2)追加tss默认I/O许可位图区域 3)更改tss I/O许可位图指向 5。detour 修改函数执行路径,可用于对函数的控制流程进行重定路径。 1)detour补丁 6. 隐身术 1)文件隐藏 2)进程隐藏 3)注册表键值隐藏 4)驱动隐藏 5)进程中dll模块隐藏 6)更绝的隐藏进程中的dll模块,绕过IceSword的检测 7)端口隐藏 7。ring0中调用ring3程序 1) apc方式 2) deviceiocontrol 方式 8。进程线程监控 1)监控进程创建 2)杀线程 3)保护进程和屏蔽文件执行 9。其他 1)获取ntoskrnl.exe模块地址的几种办法 2)驱动感染技术扫盲 3)shadow ssdt学习笔记 4)高手进阶windows内核定时器之一 5)高手进阶windows内核定时器之二 6)运行期修改可执行文件的路径和Command Line 7)查找隐藏驱动 8)装载驱动的几种办法 9)内核中注入dll的一种流氓方法 10)另一种读写进程内存空间的方法 11)完整驱动感染代码 12)Hook Shadow SSDT 13)ring0检测隐藏进程 对于rootkit的研究,涉及到的内容比较多,需要在充分学习理解这些技术的前提下,透过目前网络上出现的一些rootkit病毒,木马来进行分析,做到活学活用。因此,对于本版块的思路很清晰,首先是基础技术理论的研究,由于目前windows还是主流的操作系统,因此,我们主要研究windows下的rootkit,这个课题是一个长期的,对这个课题感兴趣的朋友,欢迎大家一起参与讨论。 声明: 转贴请注明看雪学院。

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧