如何在SQL Server 2005中模仿datagridview加载

时间:2011-06-21 20:39:40

标签: c# sql-server winforms datagridview .net-3.5

如果加载大量记录,DataGridView会保持响应,因为它会逐位将记录加载到DataGridView。如何使用常规DataGridView和来自数据库的数据集(由于我们的数据访问层,我无法使用直接数据绑定)。

3 个答案:

答案 0 :(得分:1)

您的数据访问层需要在完成查询之前产生结果。它应该实现IEnumerable或IDataReader。然后当你绑定它时,第一页结果应该很快出现。

编写仅获取第一行的单元测试,以及获取所有行的第二个单元测试。如果两个单元测试花费的时间相同,那么您的DAL就会出现问题。更改您的DAL,以便及早产生行。

答案 1 :(得分:1)

正如其他人所说,您几乎肯定希望在数据访问层实现分页,以便从数据库中返回小数据集。

一旦你有了这个,你可以考虑实现用户控制的分页(他们点击一个按钮来显示下一页或上一页 - 就像在StackOverflow上一样)或自动分页。

对于自动分页(就像在Excel中看到的那样),您需要在DataGridView中实现虚拟模式。这个blog post就是一个很好的例子。

答案 2 :(得分:0)

难道你不能简单地使用分页,只从数据库中查询每页必需的行数吗? check this link