DataSetオブジェクトはメモリ上にデータをまとめて記憶するオブジェクトです。メモリ上に簡易複製データベースを配置して、定期的に同期を取るといったような操作をします。そのときに使用するオブジェクトが前述のDataAdapterオブジェクトです。
■ DataSetNameプロパティ
現在のDataSetの名前を取得または設定します。
■ Tablesプロパティ
DataSetに格納されているテーブルのコレクションを取得します。
■ Clearメソッド
すべてのテーブル内の全ての行を削除します。
■ GetXmlメソッド
DataSetに格納されているデータのXML表現を返します。
■ GetXmlSchemaメソッド
DataSetに格納されているデータのXML表現のXMLスキーマを返します。
■ ReadXmlメソッド
XMLスキーマとデータをDataSetに読み込みます。
■ ReadXmlSchemaメソッド
XMLスキーマをDataSetに読み込みます。
■ WriteXmlメソッド
DataSetからXMLデータを書き込みます。
■ WriteXmlSchemaメソッド
DataSetをXMLスキーマとして書き込みます。
このオブジェクトは複数のオブジェクトで構成されます。図で表してみましょう。
各オブジェクトにはコレクションがあり、その中に複数の子オブジェクトが関連付けられています。
○ プロジェクト
DataAdapterクラスとDataSetクラスを使ってアプリケーションで使用してみましょう。
プロジェクトの種類 | Windows フォーム アプリケーション |
---|---|
プロジェクト名 | DataSetTest1 |
○ フォームデザイン
次の図のようにコントロールを配置してください。
○ プログラム
「接続」ボタンをクリックしたときのイベントプロシージャの記述をしてください。
Form1.vb
○ 実行結果
DataAdapterオブジェクトを作成する際に、SQLステートメントと使用するConnectionオブジェクトを指定しました。すると、SQLステートメントを元にCommandオブジェクトを生成し、それをプロパティに記憶してくれます。それを元にデータベースに対して命令が実行されます。
今回のサンプルはDataSetオブジェクトを作成し、DataAdapterオブジェクトのFillメソッドを使って、作成したDataSetオブジェクトとデータベースの同期を取っています。DataSet内には複数のテーブルを保持することができます。読み込んだテーブルはTablesコレクションに保存されますが、その最初のテーブルを使用します。そのため、インデックス「0」番を指定して使用するようにしています。
DataGridViewコントロールのDataSourceプロパティにテーブルを指定することにより、表示されます。
次にDataSetをデザイナから作成して利用してみましょう。
※ 補足1を参考にして、「SqlDataAdapter」コントロールを表示させてください。
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 | Windows フォーム アプリケーション |
---|---|
プロジェクト名 | DataSetTest2 |
○ フォームデザイン
「DataSetTest」プロジェクトと同じようにコントロールを配置してください。そして、DataAdapterオブジェクトを作成しましょう。DataAdapter配置すると以下のようなウィザードが表示されます。今まで使用していたデータベース設定が残っていれば、次の図のように「Books.mdf」を指定して「次へ」をクリックします。設定が残っていない場合は、「新しい接続」ボタンより設定してください。
次の図のように選択してウィザードを先に進めます。
「クエリ ビルダー」ボタンをクリックします。
テーブルの追加から「M_書籍」を選択し、「追加」ボタンをクリックして、閉じてください。
クエリビルダに追加したテーブルの情報が表示されます。その中から「すべての列」にチェックを入れて「OK」ボタンを押してください。
SQLステートメントが生成されました。確認をして、「次へ」をクリックしてください。
ウィザードのレポートが表示されますので、「完了」をクリックしてください。
これで、「SqlDataAdapter」オブジェクトと「SqlConnection」オブジェクトが作成されます。
次にDataSetオブジェクトを作成しましょう。メニューの「データ」― 「データセットの生成」をクリックします。すると以下のような画面が表示されます。テーブルの選択で表示したいテーブルに「レ」が入っているのを確認し、「OK」をクリックします。
すると、コンポーネントトレイとソリューションエクスプーラーに項目が追加されます。
DataGridViewコントロールに連結するDataSetを登録しておきましょう。
○ プログラム
「接続」ボタンをクリックしたときのイベントプロシージャの記述をしてください。
Form1.vb
○ 実行結果
デザイナで設定するとコードで記述する手間が減りました。