2013-05-03 26 views
8

dr.Read();, bir koşulun karşılanması durumunda baştan başlayarak tekrar okumaya nasıl başlanır? gibi şey:DataReader, bir koşulda baştan tekrar okumaya nasıl başlar?

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

"dr" türü nedir? – Dirk

+1

@Dirk Muhtemelen 'SqlDataReader' etiketli. --_-- –

+0

'DataReader' yalnızca ileriye doğrudur. –

cevap

16

Yapamazsınız.

*DataReader sınıfları yalnızca ileri düzey yineleyicilerdir.

Bunun yerine, bunu yapabilirsiniz bir List<T> (ya da DataTable) sonuçları

1

tekrar başlatmak için tek yol ExecuteReader() ile yeni bir okuyucu kapmak etmektir.

0

saklayabilir ilk yeniden başlatılıyor sonra dr.close(); kullanarak DataReader kapatarak.

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

MySqlCommand nesnesi burada komuttur.