IDbDataReader
我需要通过 C# 和 ADO.NET(和IDbCommand
API)从数据库中查询大量数据。我创建了如下查询:
WITH v as
(SELECT myFields, Datefield
ROW_NUMBER() OVER (ORDER BY Datefield ASC) AS CurrentRow
FROM dbTable
WHERE /**/
AND Datefield BETWEEN @pStart AND @pEnd
// ... )
SELECT myFields, Datefield from v where CurrentRow
BETWEEN @pRowStart AND @pRowEnd
从结果来看,我必须使用将转换和生成新数据的 C# API,这就是为什么不能使用 SqlServer - only 解决方案的原因。
我想查询页面大小为 10000 的数据库,直到没有更多数据为止。就像是
while (true)
{
// ... execute reader
if (reader.HasRows)
break;
}
将不起作用,因为我必须使用 IDbDataReader 接口。
在我的情况下我能做什么?
编辑+解决方案
我在while循环中遍历每个块并检查HasRows
数据读取器的属性,因为我可以使用专门的类型。