如何以流式方式异步填充DataGrid中的数据?

Had*_*ifi 0 c# winforms

在Windows C#应用程序表单中,我从SQL Server数据库加载了超过500,000条记录以进行分析.

SELECT TOP 500000 * FROM MobileTrans
Run Code Online (Sandbox Code Playgroud)

当我在SQL Server Management Studio中运行上面的查询时,数据立即显示并需要15秒才能完成加载.但是当我在我的Windows应用程序中运行此查询时,数据网格中的数据突然显示后,在数据网格中显示任何内容需要15秒.

如何在Windows数据网格表单中检索与SQL Server Management Studio相同的查询异步结果?

请发送一小段代码.

Tig*_*ran 5

您不需要向任何人显示 1mln记录.没有人能看到它们都是现代的.因此,首先加载可在您的应用中看到并运行的合理数据量.

简而言之:如果只是关于表示,则使用服务器端数据分页.

通过以这种方式减少大量数据,您可以完全避免异步处理.

顺便说一句,如果您需要在异步中处理它,我会将从DB检索到的数据填充到存储(Queue<T>,List<T>....)中,这是可视化元素源的可视元素.

考虑到这很容易进入相当复杂的场景,因为我并不完全清楚你的应用程序有多复杂.因此,可能是第一个解决方案将显示为最佳解决方案.

编辑

在这里,可能是一个有用的例子,关于如何实现(延迟加载).

在Windows窗体DataGridView控件中使用即时数据加载实现虚拟模式