|
■No62372 (由紀 さん) に返信 > 私の思い込みで、混乱していたようです。 > > 『3番目のデータ3の値を見たければdr[2]』 > ってことで、 > 結果は、 > 1003,チョコ > [2]ってことは3行目??? > って思いこんでいました。 説明が下手で誤解させて申し訳ありませんでした。理解できたようでよかったです。
> 結果が複数件の時はどうなるんだろう? > と疑問に思い。 > ---------------------------------------- > 学生番号,氏名,性別,国語,算数,理科,社会 > 3001,井上,男,80,90,50,70 > 3002,山田,女,70,60,100,50 > 3003,佐藤,男,60,80,60,100 > 3004,鈴木,女,90,70,90,80 > 3005,田中,男,100,50,70,60 > 3006,木村,女,50,100,80,90 > ---------------------------------------- > > string cmdstr = "SELECT * FROM GAKU_T WHERE 国語 >= 80"; > OracleConnection connection = new OracleConnection(constr); > OracleCommand cmd = new OracleCommand(cmdstr, con); > > using (OracleDataReader dr = cmd.ExecuteReader()) > { > dr.Read(); > > MessageBox.Show(Convert.ToString(dr[0])); > > } > で実行すると > MessageBoxの行で > 「オブジェクトの現在の状態に問題があるため、操作は有効でありません。」 > になってしまいました。 > > 結果が複数件の場合は > 2次元配列になると思い > MessageBox.Show(Convert.ToString(dr[0][0])); > したら、 > 「角かっこ[]付きインデックスを'object'型の式に適用することはできません。」 > になりました。 > > 結果が複数件の時は別の方法になるのでしょうか? > エラーの内容からするとデータを見つけられていません。国語はキーに設定されていますか?キーになっていないので捜せなくてそのエラーを出しているものと推測いたします。 それから私のサンプルはデータを1行だけ読むものです。全データを読むためのサンプルはshuさんの教えてくれたURLにそのものズバリがありますので、そちらを参考にしてください。
|