ひろえむさんがDataSetを解説してくださったのにコメント欄だとみにくいので
まるっとはりつけてみる。
以下、貼り付け内容。
んー、ちょっとまじめに書いてみましょうか。
DataSetはオフラインデータベースと形容されるようにデータベースの構成をそのままコンテナクラスとして構成したクラスで主な中身はDataTableの配列になっています。
DataTableの中身はDataColumnの配列とDataRowの配列になっています。
DataColumnは各列のカラム名や型などの情報が格納されています。
DataRowは行の情報としてデータが格納できるようになっています。
他にもDataTable同士のリレーションの情報などデータベースに関する情報がいろいろ格納することができるようになっています。
ただ、このままですと、データベースを簡易的に模したコレクションクラスということになるのですが、オフラインデータベースと呼ばれるにはADO.NETと呼ばれるデータベースアクセス用のクラスライブラリで利用される形式であるのが大きいと思います。
ADO.NETはデータプロバイダと呼ばれるさまざまなデータベースに対応したドライバのような役割のライブラリが存在しています。 標準ではODBCやOleDb、SqlServerなどのものが入っていますが他にも各データベースメーカーが独自にプロバイダを作成したりしています。
これらのプロバイダを利用して、各データベースの検索結果をDataSetに格納したり、DataSetからアップデートしたりすることが可能となります。
これだけだとDataSetはADO.NETで利用されるための汎用のデータ格納場所ということになるのですが、これ以外にあらかじめデータベースのスキーマ情報が格納された状態のDataSet、型付きデータセットと呼ばれるデータセットの存在があります。
型付きデータセットはDataSetクラスを継承したクラスであらかじめDataTableのスキーマ情報が任意の数保存しておくことが可能です。
これにより、データベースからスキーマ情報を取り出したり、プログラム上でDataColumnを追加してスキーマ情報を作成するためのコーディングを行ったりすることなく事前に独自クラスとしてあらかじめ用意しておくことが可能です。
型付きデータセットの作成はデザイナで行うこともできますが、ウィザードによりSQLを直接指定して作成したり、データベースからデザイナに対して直接ドラッグアンドドロップして作成することも可能です。
これらのことからデータベースからのデータの入出力を行うのに取り扱い安いコンテナということで業務アプリ開発では欠かせないクラスになっているんですね。
非常に簡単ですが、こんなのでわかりますか?(^^;