SqlDataReaderを使用して結果を処理するヘルパー関数をいくつか書いています。SqlDataReaderでread()が呼び出されているか確認してください。
while(reader.read()){
// Read fields
}
をしかし、私は機能すでに行上に配置されている読者を渡すことが私の、この場合には、私はそれが現在の行を処理したい:今、通常あなたはそうのようなループを構築したいです。上記のコードは、関数を呼び出す前にread()が呼び出されていない場合にのみ、結果セット全体を出力します。私は、関数はこのような何かやりたい
:
if(!reader._dataReady)
rowExists = reader.read() // Read
while(rowExists){
// read fields
rowExists = reader.read()
}
_dataReadyは、しかし、それはプライベートだ、SqlDataReaderの実際のメンバーであり、私が必要なものをやっているようです!読者が実際の行に配置されているかどうかを判断する方法があります。フィールドを読み込み、例外をキャッチしようとしていません。
あなたのヘルパーに電話する前に必ず読書をするように強制することはできませんか?そうしなければ、あなたは捕まえることができ、包み込み、そして転覆することができる例外につながるでしょう。あなたのターゲットオーディエンスは明らかに開発者なので、あなたのAPIに従うように強制します。 –