我正在构建一个 windows 窗体应用程序,在我想要的地方,当我打开像产品这样的窗体时,它应该加载数据库中所有列出的可用产品。随着照片。并将其显示在 DataGridView 中。现在我的问题是在 gridview 中加载这么多数据的最佳方法是什么?
如果您想在 a 中显示数据DataGridView
,并且您怀疑会有很多数据(可能多到将其完全加载到内存中可能会出现问题),您应该使用它的VirtualMode
功能。请参阅 MSDN 文章“演练:在 Windows 窗体 DataGridView 控件中实现虚拟模式”:
“当您想在 DataGridView 控件中显示非常大量的表格数据时,您可以将 VirtualMode 属性设置为 true 并显式管理控件与其数据存储的交互。这使您可以在这种情况下微调控件的性能.”
基本上,虚拟模式意味着DataGridView
控件将在需要数据时引发CellValueNeeded
事件。您订阅此事件的处理程序并“及时”获取所需的数据。这使得在内存中只保留完整数据集的一小部分成为可能。
您在内存中保留哪些数据记录以及保留多少数据取决于您。一些可能的策略:
您执行分页,即从数据库加载一大块连续的行。这需要一个已知的排序。也就是说,您需要能够ORDER BY
从您DataGridView
当前的排序中导出SQL 子句。(查看“使用 OFFSET 和 FETCH 来限制返回的行”以了解如何在 SQL 级别实现分页。)
您从数据库中获取单行。这可能比分页效率低,但如果您无法确定ORDER BY
与您DataGridView
当前的排序标准匹配的子句,则效果会更好。
无论哪种情况,请查看我上面链接的文章,了解有关如何使用虚拟模式的教程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句