DbDataReaderにはまりました
お世話になっております。
昨日、プログラミング中に戸惑ったことがあったので書いておきます。
当のコードは、大体以下のとおり。
DbDataReader reader = dbCommand.ExecuteReader(); while(reader.NextResult()){ // 結果を取得する処理 }
dbCommand.CommandTextが単一のselectのとき、このコードは一件も結果を取得しません。
DbDataReader.NextResult()の説明は、以下の通りです。
バッチ ステートメントの結果を読み込むときに、リーダーを次の結果に進めます。
Advances the reader to the next result when reading the results of a batch of statements.
自分が期待するように動作させるには、以下のように書かなければいけませんでした。
DbDataReader reader = dbCommand.ExecuteReader(); while(reader.Read()){ // 結果を取得する処理 }
JDBCに慣れ親しんだ自分としては、どうしても"next"に惹かれてしまいます。
これで、1時間つぶしました。
以上