c# – 使用大量数据填充DataGridView的最佳方式

我有一个Windows窗体,它有两个DataGridView(DGV),每个容纳25,000条记录和21列。我已经使用DataAdapter成功地从DB中加载了数据,然后我尝试使用for循环填充DGV。每种方法花费大致相同的时间。首次将数据填充到DGV中需要太长时间(7分钟),然后随后的时间更合理(约30秒)。所以我的问题是,使用大量数据(平均值= 1分钟)加载DGV的最佳方式是什么?我真的很喜欢DGV的功能,但如果推动我,我愿意使用不同的技术,即使它意味着放弃一些功能。
在DataGridView中基本上有3种方式显示数据

>在循环中手动创建行,正如您目前正在做的:正如您所注意到的那样,如果你有很多数据,这是非常低效的
>使用DataGridView的虚拟模式,如Jonathan在其评论中所建议的:DGV只创建可以显示的行数,并在用户滚动时动态地更改其内容。您需要处理CellValueNeeded事件以向DGV提供所需的数据
>使用数据绑定:这是迄今为止最简单的方法。您只需使用DbDataAdapter从数据库中填入DataTable,并将该DataTable分配给DGV的DataSource属性。 DGV可以自动创建列(AutoGenerateColumns = true),也可以手动创建列(必须将列的DataPropertyName设置为要显示的字段的名称)。在数据绑定模式下,DGV的工作方式类似于虚拟模式,除了它负责从数据源获取数据,因此您无需做任何事情。即使是大量的行也很有效

翻译自:https://stackoverflow.com/questions/3580237/best-way-to-fill-datagridview-with-large-amount-of-data

转载注明原文:c# – 使用大量数据填充DataGridView的最佳方式