数据显示太慢

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

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

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

有没有一种多线程,可以让用户察觉不到数据的添加?我最近为这个问题已经有点烦了...希望能得到指点..
...全文
104 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvlvlvlylyly 2012-06-25
  • 打赏
  • 举报
回复
C1显示数据,是一下子,把所有东西都显示出来,它的进度条会先显示出来.后面才唰地一下,把数据显示出来.
lvlvlvlylyly 2012-06-25
  • 打赏
  • 举报
回复
net代码,加了doevents试了下,好象没什么效果,还是慢,不知道是不是因为我用的破解版,故意整我?
hupeng213 2012-06-25
  • 打赏
  • 举报
回复
你写的是VB代码还是VB.net代码?

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

我用MSHFLEXGRID试过三千行数据显示,再多就没整过了。
lvlvlvlylyly 2012-06-25
  • 打赏
  • 举报
回复
算了,我还是变通一下,弄两个控件,一个C1在底下,一个上面的datagridview....
欢迎各位继续指点.....
lvlvlvlylyly 2012-06-25
  • 打赏
  • 举报
回复
其实我用C1,主要是因为它其他的功能很方便,比如锁定列,锁定行,合并。。。但是走到这一步才发现显示台慢了,退都退不回去。。
lvlvlvlylyly 2012-06-25
  • 打赏
  • 举报
回复
SQL优化不了了,我比较过,相同的查询,C1就是慢,datagridview就只要七八秒.SQL没什么优化的了.排除服务器方便的考虑...
horizonlyhw 2012-06-25
  • 打赏
  • 举报
回复
我觉得 这个你可以试试两个地方调试下:
1.你自己构建一个 1w数据的grid,然后直接显示 看看速度怎么样? 快么?

2.如果上面的快,那就去调sql,看看是不是可以优化查询? 如果上面的是慢,那其实调整的空间不大,或者说基本就是卡在控件本身上。
lvlvlvlylyly 2012-06-25
  • 打赏
  • 举报
回复
点了某一列进行排序呢?比如"数学"...哎...其实datagridview挺快的.只要七八秒,但是网上的datagridview的多表头,都不完善,都有点小问题
horizonlyhw 2012-06-25
  • 打赏
  • 举报
回复
不分页 在滚动条上加个监听~~ 滚动条拉到最底下 就再显示 下面的数据 ok?
lvlvlvlylyly 2012-06-25
  • 打赏
  • 举报
回复
我们主要是做学校的考试,学校一次考试,学生总有一万左右,这一万个学生有许多科目,每个科目都要一次显示完...如果分页的话,就不好做排序了,就是点一下表头,自动排序.还有导出,分页也不方便..
秋雨飘落 2012-06-25
  • 打赏
  • 举报
回复
业务应用为啥一次要显示1W条左右,真够BT
lvlvlvlylyly 2012-06-25
  • 打赏
  • 举报
回复
OrclComm.CommandText = Sql
OrclComm.CommandType = System.Data.CommandType.Text
OrclComm.Connection = CN
OraclReader = OrclComm.ExecuteReader
OraclReader.Read()
'Me.Text = OraclReader.GetOracleString(0)

'Dim bs As New BindingSource
'bs.DataSource = OraclReader
'C1.DataSource = bs
Dim tb As New DataTable
tb.Load(OraclReader)

可不可以直接把OraclReader加载显示?反正又没有什么数据需要处理加工,我感觉它转成datatable也要时间

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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