【DataReader,DataSet?型ごとのテーブルからのデータ取得のメリット、デメリット】

ADO.NETを使ってテーブルからデータ取得する際にいろいろなやり方があります。
DataReader,DataSet,DataTable,DataAdaptor,Datalist,DataViewこれらの使い分け方が分からず何でもDataSetでやってしまっています。
状況によって使い分けるのが正解だと思うのですが、わかりません。
ご存知の方いらっしゃいましたら教えていただけるとありがたいです。よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/12/12 23:28:13
  • 終了:--

回答(2件)

id:angelsong No.1

angelsong回答回数94ベストアンサー獲得回数02005/12/13 00:01:03

ポイント40pt

まず、基本はDataSetで正解です。

DataReaderは、DataSetの読み取り専用バージョンです。排他等の処理が不要な分、パフォーマンスの向上が期待できます。

故に、必須のクラスという訳ではありません。


DataTableは、RDBやXMLの表そのものをイメージしていただければ良いかと思います。DataSetが扱う実データです。


DataAdaptorは、DataSetに対しSQLコマンドを発行するクラスです。SELECT,INSERT,UPDATE,DELETEを実行することが出来ます。

この辺りはご存じかとは思いますが、TechScoreのSQLセクションのURLを貼っておきます。


DataListは、Webコンポーネントのコントロールクラスなので、ADOとは無関係です。


DataViewは、ADOデータセットとWindowsフォーム・Webフォームを関連づけるクラスと言うことになるでしょうか。

フォーム側で上手く使えば、表示する対象を絞り込んだり、フォームで更新・削除された行をDataSetに反映することが可能となります。

これも、ADOクラスを使って作り込んでしまえば実現可能なのですが、より簡単・確実にコーディングが出来るために用意されているクラスですね。


イメージを簡単な図にすると・・・


「           「

|DataAdapter  |    DataSet

| SelectCommand|     [DataTable]

| InsertCommand| →         」

| UpdateCommand|       ↓

| DeleteCommand|      (XML)

         」

|DataReader |

       」

    ↓


(データベース)


といった感じでしょうか。

対象がRDBであれば、DataAdapterは必須になってくると思います。


こんな説明でイメージが掴めますでしょうか?

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 iklick_kaz 4 3 0 2005-12-13 23:47:25

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません