询问如何在datagrid使用主次表的时候分页?

scorpion007 2005-06-07 05:04:46
首先,我使用主次表来定义表的关系。
次表动态指定数据源
dataSource='<%#((System.Data.DataRowView)Container.DataItem).CreateChildView("tableRelation")%>'>
使用查询语句的是最简单
StringBuilder sb = new StringBuilder("select * from test select * from test2");
使用数据适配器和dataset填充数据集
这样会有2个table
我分别设定2个tablename为"test1","test2"! 父表为test1,子表为test2

建立关系
DataRelation tableRelation = new DataRelation("tableRelation",Parent,Child,false);
为dataset的关系集合添加关系对象
datasetds.Relation.add(tableRelation);
而datagrid的时候绑定数据源是 table1.defaultview.
运行正常!
现在我想询问,如何分页?
我先说说我的想法,希望各位高手指点一下,谢谢。
我曾经想过使用sql分页。。
也就是select top来分页。。但是本人的sql语句不擅长,而且也想知道还有其它的分页方法否?
我以前的分页是在填充dataset的时候分别填充不同的table来获取相应需要的数据源。

但是这次有2个互相关联的表。
如果使用全部把表都读入dataset然后每次分页再全部读一次表,这样会造成系统资源内存不够。
因为数据可能有10-100万条。。。而且同时操作的人。。最高可能会有将近100人。。
这个方法肯定会造成服务器瘫痪的!
但是我就不知道还有什么方法能尽量占用少系统资源的状况下分页呢??
希望各位高手指教!
谢谢
如果分数不够,还可再加!
...全文
106 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmlive 2005-08-13
  • 打赏
  • 举报
回复
数据量大时,PagedDataSource确实不行
但是可以读出数据记录数除以页数,取得大概ID,但不是很准确(可能删除了一些数据)
renyu732 2005-06-10
  • 打赏
  • 举报
回复
不知道楼主有没有用过陕北吴旗娃的分页控件?

Http://www.webdiyer.com
scorpion007 2005-06-10
  • 打赏
  • 举报
回复
没人知道吗?
我顶一下
希望高手指点
scorpion007 2005-06-10
  • 打赏
  • 举报
回复
难道除了使用其他的分页控件的方法
就不能使用DataGrid自带的方法解决吗?
郁闷
不过先谢谢
renyu732(Good Good Study,Day Day Up.)
陕北吴旗娃是我佩服的一个牛人!!
嗬嗬,向他学习。不过我还是想询问靠datagrid的关系绑定没有理由不行!
只是没有人带入门,难道没有高手指点一下吗?
谢谢!
scorpion007 2005-06-08
  • 打赏
  • 举报
回复
lmlive()
这样不行!
而且这样就是跟我说的把2个表都放入了dataset,而且每次点击下一页都要再全部读一次表
这样根本服务器内存无法支撑,要知道这2个表的数据非常大,1个表至少可能就有10万条。
2个表那很难支撑下去
请问没有其他方法了吗?
请高手多多指教
谢谢!
不胜感激!
lmlive 2005-06-07
  • 打赏
  • 举报
回复
如果填充到DataSet可以用PagedDataSource pds;
pds.PageSize=?
pds.CurrentPageIndex=?
然后设置DataList的DataSource=pds;

62,064

社区成员

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

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

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

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