【06年博文搬家】DataGridView数据绑定慢的问题,关注中......

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

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

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

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

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

posted @ 2009-04-10 09:36  行一山人  阅读(1099)  评论(0编辑  收藏  举报