200分请教:WinForm下大量数据显示的问题!
要显示10万条数据,特别慢,占用内存也大,请问怎么解决呢?
1:listview和datagrid哪个快点?
2:不太想使用分页,比如说sql server 查询分析器下面的显示数据用什么控件呢?
问题点数:200、回复次数:31Top
1 楼Knight94(愚翁)回复于 2006-08-15 11:45:55 得分 25
to 1:listview和datagrid哪个快点?
应该是listview比较快。Top
2 楼Knight94(愚翁)回复于 2006-08-15 11:47:22 得分 0
to
要显示10万条数据,特别慢,占用内存也大,请问怎么解决呢?
1:listview和datagrid哪个快点?
2:不太想使用分页,比如说sql server 查询分析器下面的显示数据用什么控件呢?
还是建议你用分页处理,
否则,不管是查询,还是后期的操作都比较麻烦Top
3 楼jijl2001(jijl2001)回复于 2006-08-15 11:51:46 得分 10
虚 listview不知道行不行Top
4 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-08-15 11:55:25 得分 15
显示10万条数据给谁看? 神仙都看不了~~
sql server 查询分析器有没有分页偶不缺人,但其他应用一般都是有一定的加载策略的,例如你打开一个excel文件,顶部的数据会比较快显示出来,如果你快速拖动滚动条道底端,会发现其他数据也许还没加载~Top
5 楼lovvver(ElephantTalk.Bright)回复于 2006-08-15 12:00:56 得分 30
这么大的数据量,用分页比较好,否则,内存站用多,而且操作费时。
解决办法:
一次取出10页数据,比如默认取1-10页数据,并取出总页数。
当换页在1-10页内,直接定位到该页,如果换页的页数在10以上,则先取以所选页数为中点,如所选页数为22页,那么,可以取17-26页,这个可以根据自己需要来定。
这样,即避免了一次把10万条数据都取出来的内存占用问题,又避免了一次只取一页,频繁取数所带来的操作慢的问题(因为一次取1页和取10页的操作耗时基本相同),这是一个折中办法。Top
6 楼yuzhlhua()回复于 2006-08-15 12:01:23 得分 2
一边学习,一边顶~ 关注继续...Top
7 楼chensan(兄弟我先抛块砖,有玉的尽管砸过来)回复于 2006-08-15 14:02:35 得分 0
嗯,有道理,谢谢,winform下的分页控件除了datagrid还有什么好用的呢?Top
8 楼zhgroup(王员外)回复于 2006-08-15 16:39:16 得分 5
ListView也可以,SQL的查询分析器实际上也进行分页了。Top
9 楼caizhenfang(几路)回复于 2006-08-15 16:57:58 得分 2
不分页,难道一次把那么多数据读出来
有必要吗?浪费Top
10 楼eric88(保持共产党员先尽兴)回复于 2006-08-15 17:12:27 得分 10
做个“下一页”的button
先读50条
每点一次button,读出50条来
只能分开,数据量太大,性能问题受不了
Top
11 楼guyes123(以为喜欢这里,所以来接分)回复于 2006-08-15 17:18:42 得分 1
学习Top
12 楼cancerser(都是混饭吃,记得要结帖)回复于 2006-08-15 17:24:21 得分 10
10万条? 没多少啊,可以一次读进来
慢的问题是在显示上吧
能不能先显示一部分 比如1万,剩下的在另一个线程中加在控件里Top
13 楼iflang(踩姑娘的小蘑菇)回复于 2006-08-15 17:31:58 得分 10
to:
Knight94(愚翁) ( ) 信誉:110 2006-08-15 11:45:00 得分: 0
to 1:listview和datagrid哪个快点?
应该是listview比较快。
------------------------------------------------------------------------------------
通过一系列的测试和理论证明,,,DataGrid 比ListView 快
Top
14 楼iflang(踩姑娘的小蘑菇)回复于 2006-08-15 17:33:08 得分 5
在ASP.NET 下 10万一定要分页并且分批处理,,否则服务器完蛋了...Top
15 楼wsxqaz(原来可以改昵称)回复于 2006-08-15 17:39:42 得分 2
你难道要一次显示出来~~~Top
16 楼Radar2006(中华英雄)回复于 2006-08-15 17:41:54 得分 2
帮顶~~~Top
17 楼lovvver(ElephantTalk.Bright)回复于 2006-08-15 17:49:44 得分 0
10万条数据在查询分析器里取出来,对于普通机器来说,差不多1万条一秒种,10万条,需要10秒种。
如果在程序里取出来,而且还要绑定,你可以想象程序在运行时的速度会怎样。
用listview,数据绑定可是每次都要取10万条数据的,从执行效率的角度看,不如自己写绑定的效率高。Top
18 楼yanro(小菜鸟)回复于 2006-08-15 18:26:35 得分 2
用分页吧!!!
Top
19 楼tankai0613()回复于 2006-08-15 19:36:28 得分 10
看你用的是什么数据库,如果是用SQL的话,分页是最好的了,如果你用Oracle 数据库开发的话,那就更好做了,直接有个表空间,你给分几个区,那你查询速度绝对的快Top
20 楼wuhuabucai(混乱)回复于 2006-08-15 19:39:40 得分 5
listview kuai deTop
21 楼Dennis618(明月照沟渠)回复于 2006-08-15 19:45:29 得分 2
tankai0613() 什么叫分几个区?Top
22 楼chensan(兄弟我先抛块砖,有玉的尽管砸过来)回复于 2006-08-15 20:03:17 得分 0
能不能先显示一部分 比如1万,剩下的在另一个线程中加在控件里????
-----什么意思?怎么做?
Top
23 楼fattycat(最爱胖猫)回复于 2006-08-15 20:05:24 得分 2
markTop
24 楼jrl5365(king007)回复于 2006-08-15 20:08:09 得分 5
分页,用储存过程分页这样可能比较好点Top
25 楼purple_tide(锦)回复于 2006-08-15 20:11:54 得分 20
MSDN 里面有一篇文章 叫做 虚拟方式加载数据
主要做法就是开始只是加载你看到的那个部分数据 随着你焦点的移动 逐渐把新的数据加载入内存
当然分页实现也是可以的
虚拟方式+分页 会比较舒服 (这里的分页仅仅起到导航的作用)
.net 2.0 里面有数据导航控件Top
26 楼myminimouse(坚决不用baidu)回复于 2006-08-15 20:33:44 得分 2
jfTop
27 楼songlife33(美女,偶们结婚吧)回复于 2006-08-16 08:43:01 得分 4
有道理,显示10万条数据是有点不合理,Who can read it?Top
28 楼zhiang75(zhiang75)回复于 2006-08-16 08:50:47 得分 5
建议LZ将这10万条数先用合适的格式保存到临时文件系统中,然后在根据用户需求..分段读如内存..Top
29 楼bbbbcccc()回复于 2006-08-16 12:49:37 得分 2
http://valenhua.go3.icpcn.com/Top
30 楼mo_yuan_ming(水墨清风)回复于 2006-08-16 12:59:07 得分 10
如果列不多,列中的数据不多就直接显示,完全可以满足性能要求!Top
31 楼huming_h()回复于 2006-08-16 14:25:30 得分 2
学习Top




