WinForm里面的DataGridView如何可以快速的加载大量数据
WinForm里面的DataGridView如何可以快速的加载大量数据?我现在加载的时候查询了4000条数据居然要等很久,数据库里面查询很快,不到1秒钟的时间,但是在程序里面就很慢了,给DataGridView设置数据源的时候慢了,以下代码很慢:
DataTable dt = new ReportManager().GetHoursReportsForPMC("2", "");
if (dt.Rows.Count > 0)
{
dgv.DataSource = dt;
}
其实从数据库得到数据很快,就是绑定到控件的时候出问题了,大约要3分钟才可以加载完成。有什么好点的方法可以快点显示数据呢?我的数据来源都是通过存储过程来的,里面的逻辑都比较复杂,所以网上说的存储过程分页貌似也用不到,网络上的存储过程分页都需要传入一张表,我没有表,都是存储过程。
------解决方案--------------------你可以分页,分页加载,每次加载少量的,难道你想把4000条数据就拖动滚动条浏览吗
分页存储过程
------解决方案--------------------
传入存储过程和你的UI没有什么关系,你只需要返回你要的数据就行了
传入一张表?没必要吧,返回一张表才差不多
------解决方案--------------------总表在内存里放着,每次只显示100条记录了,下一页上一页都是从内存里取下100条和上100条数据
------解决方案--------------------我们的物料档案都是一几千上万条一起显示出来的,都没这问题
------解决方案--------------------要不分页,要不异步。建议你还是分页的好。
------解决方案--------------------4000条该不是问题,不至于像楼主说的那么慢。建议看看你的DataTable获取数据方式,从这方面入手看看原因。
------解决方案--------------------自己重写加载的方法,使用虚拟模式加载,速度可以提高10倍左右。
------解决方案--------------------4000条3分钟的话,一定是数据库方面的问题了,建议检查一下,你查询数据库的那个方法。