日期:2014-05-17  浏览次数:21011 次

数据显示太慢
公司的软件要求必须一次读出一万条左右的记录,不能分页,数据取得之后,在表格里显示出来的时候太慢了,我用的是C1flexgrid控件,每次都要二十秒左右时间,查了很多资料,查多了之后脑壳就有点晕了.发发贴子,找找思路...

我不想换控件,因为要做多表头,现在的C1还是比较方便.

我试过多线程,但委托的时候,最后还是回到主线程的,到这个地方一样地卡,其实主要原因就是C1加载本身就慢,再加上我还有个调整列宽和列高的循环.不过我试过去掉这两个循环,也快不了多少...

有没有一种多线程,可以让用户察觉不到数据的添加?我最近为这个问题已经有点烦了...希望能得到指点..

------解决方案--------------------
业务应用为啥一次要显示1W条左右,真够BT
------解决方案--------------------
不分页 在滚动条上加个监听~~ 滚动条拉到最底下 就再显示 下面的数据 ok?
------解决方案--------------------
我觉得 这个你可以试试两个地方调试下:
1.你自己构建一个 1w数据的grid,然后直接显示 看看速度怎么样? 快么?

2.如果上面的快,那就去调sql,看看是不是可以优化查询? 如果上面的是慢,那其实调整的空间不大,或者说基本就是卡在控件本身上。
------解决方案--------------------
你写的是VB代码还是VB.net代码?

如果我没记错的话,你在表格显示前加一句:doevents,
表格不管读多少行数据,会立即显示读到的数据,例如一页50行,有可能立即显示10行,每过零点零几秒再多显示一行,显示满50行之后,添加滚动条,直接把数据显示完全。
这个速度由电脑的速度决定。

我用MSHFLEXGRID试过三千行数据显示,再多就没整过了。