【问题标题】:How to best add HUGE amount of data to DataGridView如何最好地将大量数据添加到 DataGridView
【发布时间】:2018-08-10 11:09:09
【问题描述】:

我正在阅读一个长文本文件,目前大约有 900.000 行(日志文件)。然后我用数据填充一个 DataTable 对象,直到那时一切都很好。但是,当将巨大的 DataTable 对象分配给 DataGridView.DataSource 时,应用程序再次响应并且 DataGridView 显示数据需要大约 10 分钟。如果我在没有 DataTable 对象的情况下直接将数据加载到 DataGridView,也会发生同样的情况。有没有更好的方法来处理如此大量的数据和 DataGridView?

【问题讨论】:

  • 你能分享你当前的代码吗?如果我们能看到您是如何解决问题的,那么回答您的问题会更容易
  • winforms/wpf 网格? asp.net 网格?你考虑过分页吗?您应该考虑向用户展示大量数据可能会让他们在寻找东西时迷失方向。
  • 我很幸运地解决了这个问题。我在某处读到,如果您使用 AutoSizeColums 属性,就会发生这种情况。所以我确保将其禁用。但在我的代码中,我刚刚发现“dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;”在将数据表分配为 DataSource 之前。因此,在它添加到 DataGridView 的每一行之后,它开始调整列的大小 -_- 现在完全禁用它,整个过程持续大约 10 秒。所以我认为这已经解决了:) @bradbury 我还能用什么来处理这么多数据?
  • @Henning 分页数据,允许用户对其进行排序,使用不同的搜索条件对其进行过滤,任何允许您不向用户显示一百万行进行导航的内容,直到他们找到他们想要的任何内容。它将有一个额外的发展,但用户可能会喜欢它。如果可能,您可以询问他们通常使用什么搜索条件,这将有助于他们更快地搜索。
  • @bradbury9 是的,无论如何我都要实现它:) 认为“给我看这个问题和 +- 50 行”等等。非常感谢。

标签: c# datagridview datatable


【解决方案1】:

是的;您需要启用“虚拟模式”。这并不完全是微不足道的,因为您需要提供代码以按需提供单元格值(而不是预先填写所有内容),但这也不可怕。 Here's a complete walkthrough 在 Microsoft 文档中。

但是,从用户体验的角度来看,也许更好的解决方案是让您不需要在网格中显示近百万行。在大多数情况下,这不是一种有用的用户体验。

【讨论】:

  • “但是”+1。在任何用户界面上显示如此多的行数是一种糟糕的用户体验。
猜你喜欢
  • 2011-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多