DataGridView数据绑定慢的问题

DataGridView数据绑定慢的问题,关注中......
                                      

此问题已解决,请看本博客内的文章《DataGridView数据绑定慢的问题,已解决!》一文

今天用DataGridView显示大数据时(2万条,WinForm程序),发现速度很慢。因为以前一直使用百条以内的测试数据,所以一直没发现这个问题。跟踪调试时发现在从数据库读取数据到生成数据集的过程中一直很快,直到执行数据绑定这一步才很慢,要等近一分钟。

上网查了查,发现也有一些网友遇到了这个问题,但许多回答的人并不清楚这个问题的现象和原因,只是想当然地认为大数据绑定就一定会慢,而给出了只适用于Web设计时使用的存储分页方法。虽然我们也可以用存储分页的方法暂时性的解决这个问题,但毕竟不是一个好的方案,这种方法在我的程序中很不适用。而且遇到问题就想绕过去,却说那些碰到问题的网友不会变通甚至能力不行,恐怕也不是为学之道吧。

我对DataGrid的了解知之甚少,只会简单得使用,所以研究了一夜还没找出一个较好的解决方法。但可以肯定地说,显示数据慢决不是数据量大造成的。

以前我在设计时是将数据集生成并绑定到DataGrid控件上,然后在程序执行时使用Fill填充数据,速度很快(同样的2万条数据)。而现在这个程序是在运行中动态生成数据集然后绑定到DataGridView中,所以我以为是绑定过程消耗了时间。于是又提前生成数据集并绑定到DataGridView上。程序运行后发现时间并没有变快,可以证明速度的快慢与是否提前绑定数据集没有多大关系。而且在绑定完成并显示数据后,如果点击某一列进行排序的话,也需要等十几秒才能排好,这时数据已经绑定,出现这个问题更不应该是绑定的事了。这时想到以前的程序使用的都是DataGrid控件而不是现在的DataGridView控件,于是改用DataGrid控件试了一下,发现这次数据绑定仅等了不到3秒就完成了,显示的数据在排序时速度也非常快,不超过1秒就能完成排序。

由此可以断定是新的DataGridView控件本身造成了速度慢的问题。当然也可能是使用方法不对造成了这个问题。在下水平有限估计是解决不了了,还望那位高手能指点一二,解答这个问题。不胜感激!

DataGridView数据绑定慢的问题,已解决!
                                      

    今天看了看《DataGirdView数据绑定慢,关注中》这篇文章,一直没有留言,还以为这个问题没人关注,结果发现访问量还不小(呵呵,对我这个小博客来说),看来有许多朋友都碰到了这个问题啊。其实上个月就已经解决这个问题了,但一直没时间写出来,今天就分享一下吧。
    经过研究,最终发现了DataGridView数据绑定慢的原因,原来是将DataGridView的AutoSizeColumnsMode属性设置为了AllCells,这样就会自动调整数据列的大小。非常喜欢这个功能,但一直没注意到它的响应速度。因为在数据绑定时,开启了 AutoSizecolumnsMode后DataGirdView会对所有数据进行遍历以决定每一列的宽度,所以绑定速度会受到极大的影响,将其改为 None即可。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值