C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

SqlDataReaderで1件目のデータを読み込まない


(過去ログ 5 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■5758 / inTopicNo.1)  SqlDataReaderで1件目のデータを読み込まない
  
□投稿者/ Cしゃーぷ 二等兵(1回)-(2006/08/21(Mon) 13:23:01)

分類:[C#] 


分類:[C#] 

こんにちわ。
初めまして!

タイトルの通りなのですが、SqlDataReaderを使用しDBからデータを取得して
while (SqlDataReader.Read())で回してデータをセットしているのですが、なぜか1件目のデータが読み込まれません。
SQL文はクエリアナライザで確認し、3件表示されるので間違ってはいないと思います。
どの辺りに原因がありそうですか?
皆様のご意見お待ちしています。
宜しくお願い致します。

0
引用返信 編集キー/
■5760 / inTopicNo.2)  Re[1]: SqlDataReaderで1件目のデータを読み込まない
□投稿者/ はいこーん 曹長(99回)-(2006/08/21(Mon) 13:42:33)

分類:[C#] 

No5758に返信(Cしゃーぷさんの記事)
> タイトルの通りなのですが、SqlDataReaderを使用しDBからデータを取得して
> while (SqlDataReader.Read())で回してデータをセットしているのですが、なぜか1件目のデータが読み込まれません。
> SQL文はクエリアナライザで確認し、3件表示されるので間違ってはいないと思います。
> どの辺りに原因がありそうですか?

Readメソッドが余分に呼ばれているだけでしょ。

0
引用返信 編集キー/
■5766 / inTopicNo.3)  Re[2]: SqlDataReaderで1件目のデータを読み込まない
□投稿者/ Cしゃーぷ 二等兵(2回)-(2006/08/21(Mon) 16:25:50)

分類:[C#] 

はいこーんさん
お返事どうもです。

> Readメソッドが余分に呼ばれているだけでしょ。

↑おっしゃる通り、最初のループ1でReadを呼び、ループ1の中のループ2で件数をカウントし、8件 or Readでループを抜けるように記述しています。
そのようにReadを2度同時に使用することは不可能なのでしょうか?

0
引用返信 編集キー/
■5767 / inTopicNo.4)  Re[3]: SqlDataReaderで1件目のデータを読み込まない
□投稿者/ Cしゃーぷ 二等兵(3回)-(2006/08/21(Mon) 16:27:15)

分類:[C#] 

No5766に返信(Cしゃーぷさんの記事)
> はいこーんさん
> お返事どうもです。
>
>>Readメソッドが余分に呼ばれているだけでしょ。
>
> ↑おっしゃる通り、最初のループ1でReadを呼び、ループ1の中のループ2で件数をカウントし、8件 or Readでループを抜けるように記述しています。
> そのようにReadを2度同時に使用することは不可能なのでしょうか?

8件 or Readではなく、8件 and Readでした。
蛇レス失礼しました。

0
引用返信 編集キー/
■5772 / inTopicNo.5)  Re[3]: SqlDataReaderで1件目のデータを読み込まない
□投稿者/ はいこーん 准尉(100回)-(2006/08/21(Mon) 17:31:29)

分類:[C#] 

No5766に返信(Cしゃーぷさんの記事)
> ↑おっしゃる通り、最初のループ1でReadを呼び、ループ1の中のループ2で件数をカウントし、8件 or Readでループを抜けるように記述しています。
> そのようにReadを2度同時に使用することは不可能なのでしょうか?

わかっていないですね・・

Readメソッドのリファレンスを見ましょう。何と書いてありますか?

0
引用返信 編集キー/
■5778 / inTopicNo.6)  Re[1]: SqlDataReaderで1件目のデータを読み込まない
□投稿者/ ぽぴ王子 伍長(45回)-(2006/08/21(Mon) 18:48:13)
ぽぴ王子 さんの Web サイト

分類:[C#] 

こんにちは。

一番いいのは、フローチャートなどを書いてみて流れをつかむことかも。
ちゃんとしたものでなくてもいいんです。
   腹が減る
     ↓
   飯を食う
     ↓
   (゚д゚)ウマー
とかでもいいんです(笑)

あとは自分を PC に置き換えてみて、頭の中でひとつひとつ処理をシミュレート
してみるというのも効果的。ぼんやりと考えていたことを徹底的かつ論理的にま
とめる作業が足りていないんじゃないかなーと思います。


たぶん、MSDN の SqlDataReader.Read メソッドの説明の

> SqlDataReader の既定の位置は、先頭のレコードの前です。そのため、データ
> へのアクセスを開始するには、Read を呼び出す必要があります。

を見て while (SqlDataReader.Read()) という処理になったのだと思いますが、
こう書くと最初に while に来たときは Read() が実行されて先頭のレコードに
なりますよと。そこまではいい。ただ次に来たときはどーなんのよ??という話で
すね。

まずはキチンとまとめるところから。(+д+)マズーにならないようにがんばってく
ださい(笑)

0
引用返信 編集キー/
■5806 / inTopicNo.7)  Re[2]: SqlDataReaderで1件目のデータを読み込まない
□投稿者/ 特攻隊長まるるう 一等兵(27回)-(2006/08/22(Tue) 12:51:07)

分類:[C#] 

Read を実行したら実行した回数だけレコードが進むんだから、
結果の Boolean だけ別変数に入れて、そっちの変数を何度でも
好きなだけ判定で使えばいいのでは?

0
引用返信 編集キー/
■5939 / inTopicNo.8)  Re[3]: SqlDataReaderで1件目のデータを読み込まない
□投稿者/ Cしゃーぷ 二等兵(4回)-(2006/08/24(Thu) 14:30:26)

分類:[C#] 

お返事遅くなり、申し訳御座いませんでした。
みなさんのお陰でどうにか無事に動くようになりました。
やはり、【Read】の仕組みをきちんと理解していませんでした。
まだまだ勉強不足です。
また、お聞きすることもあるかと思いますので、その時は宜しくお願い致します。

ありがとうございました!

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -