条件が満たされた場合にdr.Read();
を最初から読み直すにはどうすればよいですか?
何かのようなもの:
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();
を使用してデータリーダーを閉じてから、再度初期化します。
If(condition)
{
dr.close();
dr=command.ExecuteReader();
}
ここで、commandはMySqlCommand
オブジェクトです。