2013-05-03 4 views
8

dr.Read();는 조건이 만족되면 처음부터 다시 읽기 시작하는 방법? 같은 뭔가 :DataReader가 조건에서 처음부터 다시 읽기를 시작하는 방법은 무엇입니까?

sqlDataReader dr = command.ExecuteReader(); 
for(int i=0; dr.Read() ; i++){ 
if(condition){ 
//let dr.Read() start reading from the beginning 
} 
} 
+0

'dr'의 유형은 무엇입니까? – Dirk

+1

@Dirk 아마도 태그 된'SqlDataReader' 일 것입니다. --_-- –

+0

'DataReader'는 전달 전용입니다. –

답변

16

수 없습니다.

*DataReader 클래스는 forward-only 이터레이터입니다.

대신에, 당신은 당신이 할 수있는 List<T> (또는 DataTable)의 결과

1

다시 시작하는 유일한 방법은 ExecuteReader()와 새로운 독자를 잡아 것입니다.

0

를 저장할 수있는 첫 번째 다시 초기화 한 후 dr.close();를 사용하여 DataReader를 닫아.

If(condition) 
{ 
    dr.close(); 
    dr=command.ExecuteReader(); 
} 

여기서 command는 MySqlCommand 개체입니다.

관련 문제