- 題名: ExecuteReaderで取得した情報のループ処理
- 日時: 2006/07/11 2:51:49
- ID: 16583
- この記事の返信元:
- (なし)
- この記事への返信:
- [16585] Re[1]: ExecuteReaderで取得した情報のループ処理2006/07/11 9:20:13
- ツリーを表示
はいこーんさん、こんにちは。返信ありがとうございます。 >その前にどっかでReadしてるんじゃない? わたしもそう思って下記のようにWhileの直前で見てみたんですが、 Whileに入る直前は確かに1レコード目が見れています。 でもWhileに入ると2レコード目になってるんです。 MessageBox.Show(objReader("hoge").ToString()) ←ココでは1レコード目 While (objReader.Read()) gldList(i, 0) = objReader("hoge").ToString() i += 1 End While
■No16594に返信(ぽぴ王子さんの記事) > MessageBox で1レコード目が見えているということは、やはりその前に Read() した形跡があるのではないでしょうか。 > While の前の部分を少し調べてみてくださいね。 おそらくですが、「式ウォッチ」で "実行してしまっている" のではないでしょうか? 「式ウォッチ」で見る値は実行した結果です。 当然実行すれば、次のレコードに進められてしまいます。
>その前にどっかでReadしてるんじゃない? >While の前の部分を少し調べてみてくださいね。 スミマセン!!!(>_<") みなさんの推察どおり前でReadしてました。 抽出結果の件数確認でRead値を見ていました。 If objReader.Read = False Then データなしメッセージ処理 End If ここを HasRowsプロパティを見て判断するようにしたところ、 最初に書いた■の処理で1レコード目から正しく見れるように なりました。 最近詰めて仕事やってたせいか盲目になっていました。 恥ずかしい限りです(/-\*) つまらないことでみなさんの貴重なお時間を使わせてしまい 大変恐縮です。
分類:[.NET]