如何使dr.Read();
从条件满足时开始再次开始阅读? 喜欢的东西:如何让DataReader从一开始就重新开始读取?
sqlDataReader dr = command.ExecuteReader();
for(int i=0; dr.Read() ; i++){
if(condition){
//let dr.Read() start reading from the beginning
}
}
如何使dr.Read();
从条件满足时开始再次开始阅读? 喜欢的东西:如何让DataReader从一开始就重新开始读取?
sqlDataReader dr = command.ExecuteReader();
for(int i=0; dr.Read() ; i++){
if(condition){
//let dr.Read() start reading from the beginning
}
}
你不能。
*DataReader
类是只转迭代器。
相反,你可以存储在一个List<T>
(或DataTable
)的结果
重新启动它的唯一方法就是抓住新的读者ExecuteReader()
。
你可以做到这一点,首先关闭使用dr.close();
DataReader的然后再对其进行初始化。
If(condition)
{
dr.close();
dr=command.ExecuteReader();
}
其中命令是MySqlCommand
对象。
'dr'的类型是什么? – Dirk 2013-05-03 14:46:34
@Dirk它可能是'SqlDataReader'作为标记。 --_ – 2013-05-03 14:46:55
'DataReader'是只向前的。 – 2013-05-03 14:47:23