.net 应用即席SQL查询,无需分页即可处理数百万条记录

r6vfmomb  于 2022-12-01  发布在  .NET
关注(0)|答案(1)|浏览(207)

我正在处理一个项目,以生成类似SQL Developer(或SQL Server Management Studio)的IDE。我打算在IDE编辑器中编写任何即席查询,并在datagrid中显示检索到的数据。该项目是在.NET Windows窗体环境下用C#生成的。
我的挑战是在大型数据表(数百万个数据列)上执行任何选取作业,而不套用任何分页。分页会变更SQL Server Profiler中的实际查询。
假设如果我写

SELECT * 
FROM LargeTableA

并且应用虚拟化,每次我从LargeTableA中读取50行时,实际的查询将在内部发生变化,数据库命中的数量将是多个。
我想像专业的SQL IDE(SQL Developer)一样完成这项工作。我需要知道他们是如何在不应用分页的情况下完成这项工作的。我恳请Maven提供建议,以便在您的帮助下完成这项任务。

6mzjoqzu

6mzjoqzu1#

我们对基本概念的看法是否一致?当您调用command.ExecuteReader(),则会得到一个SqlDataReader。这有一个Read()方法,让您向前迭代一次结果集。您的连接会一直保持打开状态,直到您关闭它。如果您出于某种原因决定不需要继续,您可以在读取完每一行之前关闭它。您不知道,也不应该关心,连接中缓冲了多少行。所有这些都与sql查询中的分页无关,并且它可以让你,例如,在数据网格中实现无限滚动,或者只显示前n条记录,以避免淹没你的应用程序。这有帮助吗?

相关问题