【发布时间】:2009-05-12 18:53:32
【问题描述】:
我有一个 GridView,它在 DataSet 模式下从 SqlDataSource 访问数据。我启用了分页,它可以工作,但在大型数据集上,提取数据需要非常长的时间。
似乎 SqlDatSource 正在提取所有数据,然后在 UI 级别对其进行分页。这显然是一个糟糕的解决方案。我查看了Tips on speeding up a SqlDataSource?,它似乎在同一个主题上——看起来我需要在我的 SELECT 语句中实现一些分页代码,我只是不知道该怎么做。如果必须,我不反对将其拉入 SProc,但将 SELECT 命令留在 SqlDataSource 中会更好。
我知道 MySQL 有 LIMIT X,Y(其中 X 是要检索的行数,Y 是偏移量)。 TOP好像没有做同样的事情,我也不知道如何将GridView中的分页信息获取到SqlDataSource中。
这是最好的方法吗? (如果是这样,我从哪里开始?)或者有没有更好的方法从 GridView 中的 SqlDataSource 获得有效的分页?
(如果重要,我会使用 C#,但我认为不应该。)
谢谢。
【问题讨论】:
标签: .net sql-server pagination