C# 및 ADO.NET (IDbDataReader
및 IDbCommand
API)을 통해 데이터베이스에서 많은 양의 데이터를 쿼리해야합니다. - 유일한 해결책은 사용할 수 없습니다 I 변환하고 SQLSERVER가 왜 새로운 데이터, 그게 전부를 생성하는 것 C#을 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
: 가 나는 follwing을 같은 쿼리를 만들었습니다.
더 이상 데이터가 없을 때까지 10000의 pagesize로 데이터베이스에 대해 쿼리를 수행하려고합니다. 나는 IDbDataReader 인터페이스를 사용할 필요가 원인
while (true)
{
// ... execute reader
if (reader.HasRows)
break;
}
같은 뭔가가 작동하지 않습니다.
내 상황에서는 어떻게해야합니까?
EDIT + 솔루션 난 while 루프의 각 반복 블록 내가 특수 유형을 사용할 수 원인, DataReader를 HasRows
의 특성을 확인한다. SQL 서버 2012에
당신이 사용할 수있는 pagging CTE는 서버 2012 페이징 – Nighil
SQL 무엇 V 알려주세요 SQL 서버의 임포트 –
을 단순화하기 위해 ORDER BY 절에 OFFSET 및 다음 조항을 추가했다 –