データセットクラスはメモリ上にデータをまとめて記憶できます。メモリ上に簡易データベースを作って、データベースと同期を取って利用します。同期を取るときに使用するのがDataAdapterオブジェクトです。
| プロパティ名 | 概要 | 
|---|---|
| DataSetName | DataSetオブジェクトの名前を取得・設定する | 
| Tables | DataSetオブジェクトに格納されているテーブルのコレクションを取得する | 
| メソッド名 | 概要 | 
|---|---|
| Clear() | DataSetからすべてのデータを削除する | 
| GetXml() | DataSetに格納されているデータのXML表現を返す | 
| GetXmlSchema() | DataSetに格納されているデータのXML表現のスキーマを返す | 
| ReadXml(String) | XMLファイルを使用してDataSetにスキーマとデータを読み込む | 
| ReadXmlSchema(String) | XMLファイルを使用してDataSetにスキーマを読み込む | 
| WriteXml(String) | XMLファイルにDataSetのデータを書き込む | 
| WriteXmlSchema(String) | XMLファイルにDataSetのスキーマを書き込む | 
DataSetクラスは複数のクラスで構成されています。図で表してみましょう。
各クラスにはプロパティにコレクションがあり、その中に複数のオブジェクトが関連付けられます。
○ プロジェクト
プロジェクトを作成して確認してみましょう。DataAdapterクラスとDataSetクラスを使ったアプリケーションを作成しましょう。
| プロジェクトの種類 | コンソール アプリケーション | 
|---|---|
| プロジェクト名 | DataSetTest1 | 
○ 作成の準備
「DataReaderTest」プロジェクトを修正して作成しましょう。DataReaderTestフォルダーをコピーして、作成するプロジェクト名にフォルダー名を変更してください。
○ プログラム
Mainメソッドに次のように記述してください。
Module1.vb
○ 実行結果
登録されているテーブルの件数:1
○ 解説
16行目でDataAdapterオブジェクトを生成しています。コンストラクターの引数として、データセットと同期をとりたいテーブルからデータを抽出するSQL文と、Connectionオブジェクトを指定します。これにより、必要な時にデータベースに接続し、問い合わせ、接続を閉じてくれます。
19行目ではDataSetオブジェクトを生成しています。生成したオブジェクトを22行目のDataAdapterオブジェクトのFillメソッドの引数に渡して、データベースと同期をとっています。
今回は25行目でDataSetオブジェクトに登録されているテーブルの件数を表示しています。DataSetオブジェクトのTablesプロパティはコレクションです。コレクションは複数のオブジェクトを格納して管理するオブジェクトです。このオブジェクトのCountプロパティを使って、格納されているテーブルオブジェクトの数を表示しています。
次にDataSetオブジェクトにもう一つテーブルを追加してみましょう。
○ プロジェクト
プロジェクトを作成して確認してみましょう。
| プロジェクトの種類 | コンソール アプリケーション | 
|---|---|
| プロジェクト名 | DataSetTest2 | 
○ 作成の準備
「DataSetTest1」プロジェクトを修正して作成しましょう。DataSetTest1フォルダーをコピーして、作成するプロジェクト名にフォルダー名を変更してください。
○ プログラム
Mainメソッドに次のように追加してください。
Module1.vb
○ 実行結果
登録されているテーブルの件数:2
○ 解説
DataSetに複数のテーブルを登録する方法はいくつかありますが、今回は9行目にあるように、複数のテーブルからデータを取得するSQL文を作成しました。これによりDataSetオブジェクトに登録されているテーブルの件数が2件となります。
            
                 
            
            
            データベースとDataAdapterオブジェクトとDataSetオブジェクトの関係