2013-05-03 90 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 2013-05-03 14:46:34

+1

@Dirk它可能是'SqlDataReader'作为标记。 --_ – 2013-05-03 14:46:55

+0

'DataReader'是只向前的。 – 2013-05-03 14:47:23

回答

16

你不能。

*DataReader类是只转迭代器。

相反,你可以存储在一个List<T>(或DataTable)的结果

1

重新启动它的唯一方法就是抓住新的读者ExecuteReader()

0

你可以做到这一点,首先关闭使用dr.close(); DataReader的然后再对其进行初始化。

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

其中命令是MySqlCommand对象。