【发布时间】:2020-02-02 12:14:35
【问题描述】:
我想在 datagridview 上用 C# 进行分页。我做了一些研究,所有这些都像this 我必须首先从 sql 获取所有数据到 c#,然后进行分页。我想在页码达到时按需获取记录。例如,如果我的 PageSize 为 10,我不想在显示前 10 条记录时获取接下来的 10 条记录,并且一旦用户单击“下一步”,则使用某些 sql 查询或存储过程获取接下来的 10 条记录。 我正在使用 Sql Server 2018 我的目标是最小化内存占用,以便在处理大量数据时提高应用程序的速度。目前我使用直接sql命令并通过存储过程将数据获取到datagridview;这个 SP 有一个递归命令,对于大数据来说有点重。随着时间的推移,数据库会增长,获取所有数据需要时间,因此 GUI 会变慢。所以我想我必须做分页;但只要我知道在默认分页中,所有数据仍然会被提取到内存中。但我想获取我计划在 C# WinForm 的每个页面中显示的行数
【问题讨论】:
-
如果你想要现在的总数你可以先获取一个count。如果你想从结果集的中间获取一个块,你需要一个支持这个的服务器,可能带有 orderby、fetch 和 offset。 - 您应该告诉我们您使用的是哪个 DBMS!
-
嗨。我正在使用 sql server 2018
-
所以你可以试试这个:
SELECT * FROM sales ORDER BY sale_date DESC OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY -
感谢您抽出宝贵时间分享您的问题。但是您的问题中缺少一些东西。你的目标是什么?你的困难是什么?到目前为止你做了什么?请尝试更好地解释您的问题、您的开发环境并分享更多代码或屏幕截图。为了帮助您改进查询的内容、标题和标签,请考虑阅读帮助中心的 How do I ask a good question。
标签: c# sql datagridview pagination