C# 使用for循环从adomd或ado.net Datareader读取数据
我正在执行一个查询(DAX或SQL),其中我正在使用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
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:谢谢!!这令人放心:)