C# 使用for循环从adomd或ado.net Datareader读取数据

C# 使用for循环从adomd或ado.net Datareader读取数据,c#,asp.net,.net,ado.net,adomd.net,C#,Asp.net,.net,Ado.net,Adomd.net,我正在执行一个查询(DAX或SQL),其中我正在使用top子句。查询根据top子句使用的长度返回记录。我正在使用以下代码 AdomdConnection conn = new AdomdConnection(connString) ; AdomdCommand command = new AdomdCommand(query, conn); connection.Open(); var resultSet = command

我正在执行一个查询(DAX或SQL),其中我正在使用
top
子句。查询根据
top
子句使用的长度返回记录。我正在使用以下代码

        AdomdConnection conn =  new AdomdConnection(connString) ;
        AdomdCommand command  =   new AdomdCommand(query, conn);
        connection.Open();
        var resultSet = command.ExecuteReader(); 
         while (resultSet.Read())
        {

        }
问题:假设查询将返回1000条记录,根据用户输入(startingRecord=500和lastRecord=600),我想从500号记录提取到600号记录并返回相同的记录。我知道的唯一方法是使用while循环并保留一个
计数器,它在每次迭代后都会得到增量。现在,当计数器为500时,我将存储数据并继续循环,直到获取第600条记录。之后,我将打破while循环

是否有机会使用for循环检索数据。这将允许我在500处初始化for循环计数器,并在600处停止循环


检索记录的最佳方式是什么。有没有办法使用LINQ?

为什么不从数据库中从500到600开始提取记录,而不是循环并过滤记录。
DataReader
没有索引属性,所以不能使用
进行
循环。@sainpreep:我使用的是DAX查询,在分页时有一定的限制。有一些变通办法,但效果不太好。因此,我们正在尝试这种机制不,在这种情况下,没有机会使用for循环,您当前使用计数器并打破while循环的方法是解决此问题的唯一解决方案。我想,如果您同时考虑数据库性能,那么您的方法没有什么不好的地方。@Kr15:谢谢!!这令人放心:)