3

我是数据库应用程序的新手。

我想以较低的内存占用实现分页。该应用程序连接到 MS SQL Server 2008 R2 DB。

我拥有的表包含数千条记录,应用程序可以查询具有给定条件的记录。

当前实现使用 LINQ-SQL 进行查询,整个数据将返回应用程序。如果查询返回太多结果,这可能会耗尽进程内存。因此,我想将其实现为页面。

我在网上遇到了一些可以对数据进行分页的存储过程。

我不确定标准分页是否可以帮助我满足以下要求

  • 减少内存占用,按需返回所需的结果。
  • 保留查询状态。当用户查看视图中的数据时,可以更新相同的记录。因此,无论表的当前状态如何,但与最后一个查询有关,都必须维护状态和结果数量。
  • 如果使用 LINQ 实现分页,这会加载进程来存储整个结果吗?
4

2 回答 2

5

使用 Linq 分页不是问题,您可以使用Take()Skip()

var page = list.Skip((pageNo - 1) * pageSize)
               .Take(pageSize)
于 2012-07-12T05:57:20.793 回答
3

网格视图控件具有以下特点:

  • Linq 2 SQL 支持
  • 使用 Linq 2 SQL 自定义分页
  • 显示排序方向
  • 分页器中的下拉菜单以调整页面中的记录数

LINQ TO SQL GridView(增强的 Gridview)

于 2012-07-12T05:20:37.673 回答