使用c#中的后台进程从数据库中获取记录?

时间:2012-04-09 09:40:16

标签: c# .net winforms

我在数据库中总共有70,000条记录。 目前我显示数据网格视图中的所有记录。 但这需要太多时间。 现在我想在winform加载时加载前100条记录 然后使用后台进程获取记录。 并将其绑定到datagridview。 有可能吗?如果是的话我是怎么做到的?

2 个答案:

答案 0 :(得分:0)

您可以在数据表上使用linq,因此您只能获取要显示的行(使用分页)。一个例子:

DS.Tables[0].Select().Skip<DataRow>(pageItems * (PageNumber - 1)).Take<DataRow>(pageItems).CopyToDataTable();

pageItems,在您的情况下为100,PageNumber是当前选定的页面。在示例中,我有一个数据集DS,并在新数据表中获取结果的副本。

答案 1 :(得分:0)

绑定到datagrid的70000行对最终用户没有多大意义。它可能导致整体应用程序减速和高内存使用率。即使行将在后台填充,用户体验也可能非常糟糕。

我建议使用过滤器来限制用户可以看到的行数。另一种选择是使用virtual mode