2011-05-13 8 views
2

select 문을 사용한 후 NpgsqlDataReader에서 행 수를 얻으려고합니다. 내가 확인하려고하는 이유는 어떤 데이터, 단일 행이 있는지 또는 데이터로 작업하기 전에 여러 행이 있는지 확인하는 것입니다. 어떤 도움이라도 대단히 감사하겠습니다.NpgsqlDataReader에서 행 수를 얻는 방법

다른 DataReaders에이처럼 어떤 결과가 있는지 DbDataReader에서 NpgsqlDataReader 상속, 당신은

if (reader.HasRows) {...} 

확인 할 수있는 경우이 C# .NET을 4

답변

1

검색 좀에서 NpgsqlDataReader는 sqldatareader과 매우 유사하게 보일 수 있습니다. sqldatareader에는 행 수를 얻는 방법이 내장되어 있지 않습니다. It would appear 반복 계산을 수행하고 행 개수를 가져 오려는 경우 자체 계산을 수행해야합니다.

2

에서 수행되고있다. 하지만 난 독자를 통해 반복하지 않고 실제 행 수를 얻을 수 있다고 생각하지 않습니다 ....

0

빠른 미리보기 만 원하는 경우

1)는 리미터와 유사한 SQL 문을 실행할 수있는 여러 결과

이 있습니까 하나 개의 결과 3)가 않는 결과 2)이 없습니다. 이것은 매우 빨라야합니다. 그리고 그 실행 후에, 당신은 완전한 데이터를 가져올 것입니다.

예 :

선택하면 0 행, 어떤 결과를/얻는 경우에 당신이 얻을 경우 *에서 [TABLE] [조건] LIMIT 2

당신이 1 행, 하나 개의 결과/ 을받을 경우 2 행, 복수의 결과

0

나는 또한 진행률 표시 줄에 대한 행의 수를 좀하고 싶습니다,하지만 난 두 번 반복 할 수없는 것은 단지 진행 상황을 표시하는 데 너무 많은 일 것 같다, 당신은 프록시를 만들 수 있습니다

) 클래스, w hich는 자식이 NpgsqlDataReader이고 반복자 (extend IEnumerable)를 다시 구현합니다. 이는 .Read() 인 경우 암시 적으로 2 행까지 반복하거나 .CountClass으로 요청하면 나머지는 직접 읽지 않고 캐시에서 2를 제공합니다. .

관련 문제