我有一个Windows应用程序,其中表单与数据绑定。
由于数据量大,表单加载缓慢。我还在表单中显示分页以浏览记录。
如何提高效果?
答案 0 :(得分:3)
底线 - 您的应用需要有效地“分页数据”。
这意味着,您需要“延迟加载”数据。 UI应该只加载和显示它需要显示的数据;因此,仅在需要时才加载其他数据。
由于您没有提供有关您的应用和您加载的数据的大量信息。
因此,我们假设您的应用程序获取10,000,000,01条记录。
TOP 100
获取前100条记录,然后填写您的第一页和接下来的四页。Next
或连续'Nexts'后,您可以点击数据库以获取下一条记录。请注意,您需要一些机制(ROW_NUMBER
?)来跟踪所提取的记录,行号等。这article确切地讨论了你所追求的和我所指的是什么。
答案 1 :(得分:2)
如果不了解更多有关您的应用程序的话,很难肯定地说,但是想到的最直接的事情是,如果您的数据集很大,您应该在数据库端进行分页(通过使用行计数约束查询)而不是在申请方面。
数据绑定是.NET的一个便利功能,但它带来了严重的性能开销。一般情况下,只能处理少于几千行的小数据集,这些数据集最多只能绑定到几十个控件。如果数据集变得非常大,它们会非常快速地收费,并且不会进行任何调整以使应用程序快速完成。关键是始终限制数据绑定系统在任何给定时间处理的内存量,以便它不会因元处理而过载。
答案 2 :(得分:1)
以下是一些建议:
虚拟模式设计用于非常大的数据存储。当VirtualMode属性为true时,您创建一个具有一定数量的行和列的DataGridView,然后处理CellValueNeeded事件以填充单元格。
如果您正在使用其他控件,则可以查看该控件是否提供了类似的功能。 ListView也有VirtualMode。
答案 3 :(得分:0)
如果您使用的是SQL Server,请实施paging using the Commaon table Expressions and ROW_NUBER()。这将允许您从Sql服务器获得更少的数据,并且肯定会有更好的性能。