- - PR -
ORACEからデータ取得
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-02-23 21:07
[OS]winXP
[DB]oracle9i 例えば select testA,testB from TEST というSQL文を 実行した結果をレコードセットのようなものにセットするにはどうすればよいのでしょうか? 最終的には取得したデータをフィクスグリッドにセットしたいのです。 いろいろ調べた結果、OracleCommandにSQL文を渡してExecuteReaderメソッドの結果を OracleDataReaderオブジェクトにセットするような気がするのですが いまいち、やり方が分かりません。 よろしくお願いします。 | ||||
|
投稿日時: 2004-02-23 23:26
どこを調べました?MSDNにサンプルはあるし、@ITにもサンプルというか、tipsがあるんですけど? こう書くのは、「答え」ではなく「方法」を示したいからです。おそらく、ここで回答しているほとんどの人がそうです。そして「方法」を示すためには、どんなところを、どのように調べて、何がわからないのか、知りたいのです。 これはあなたの理解度を強めるためだけでなく、回答者の理解度や説明のテクニック上達につながります。 また、できたことを報告することで、質問したいけど書き方がわからない人、後から疑問に思った人への回答にもなります。 よろしくご協力のほど、お願いします。 | ||||
|
投稿日時: 2004-02-24 09:23
Jittaさんアドバイスありがとうございます。
今回はOracleDataReaderクラスについて.NET Frameworkクラスライブラリを 調べてました。 不明なのは、SQLの結果を何に格納して、どのように参照するかです。 よろしくお願いします。 | ||||
|
投稿日時: 2004-02-24 09:34
一体どこを調べたら「不明」なのでしょうか? MSDN(.NET Framework クラス ライブラリ) : OracleDataReader クラスにもちゃんと使用例があるんですけど。 [ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-02-24 09:37 ] | ||||
|
投稿日時: 2004-02-24 10:45
ぢゃん♪さんありがとうございます。 今回データが取得できていないと思っていたのは、OracleDataReaderにExecuteReaderを セットした後で一度Readメソッドを実行しなければならないことに気づかなかったためでした。 | ||||
|
投稿日時: 2004-02-24 11:34
ちなみに、SQLの結果をセットしたOracleDataReaderを
FlexGridのデータソースにセットにセットしたいのですが Me.flexGrid.DataSource = myreader としたのですが、何も表示されませんでした。 DataSetの場合とは違い、1レコードずつセットしなければならないのでしょうか? | ||||
|
投稿日時: 2004-02-24 12:06
DataSourceを設定した後に、DataBindしなければなりません。必要なら、Bind前にDataMemberも設定します。
#他のコントロールと同じならば。。。 | ||||
|
投稿日時: 2004-02-24 12:07
flexGrid.DataSourceには「読み込んだ結果」を渡さなければならないのですが
OracleDataReaderは「読み込んだ結果」ではなく「読み込み」を表しています なので >DataSetの場合とは違い、1レコードずつセットしなければならないのでしょうか? 1件づつ「読み込み」をしてFlexGridに設定しないといけません。 ただもう一度FlexGridとDataSetとDataAdapterの関係を調べてみるといいかもしれません。 その上でどの方法が良いか検討してみてはでしょうか? |