第2回 データセットとデータテーブル連載:Visual Studio 2005によるWindowsデータベース・プログラミング(2/3 ページ)

» 2007年02月27日 00時00分 公開
[遠藤孝信デジタルアドバンテージ]

VB 2005でプロジェクトにデータセットを追加

 それではVB 2005でデータセットを使ってみましょう。

 前回でプロジェクトにSQLデータベースを新規追加すると、DBファイルである「.mdfファイル」と同時に「.xsdファイル」が自動的に追加されました。例えばDBファイルの名前を「MyDB.mdf」とした場合には、.xsdファイルのファイル名は「MyDBDataSet.xsd」となります。この.xsdファイルがデータセット(もう少し正確にはデータセットの定義)です。

 .xsdファイルがプロジェクト内に含まれていない場合には、プロジェクトに新しい項目として[データセット]を追加します。これにより.xsdファイルがプロジェクト内に作成されます。

図3 [新しい項目の追加]ダイアログによるデータセットの追加
テンプレートで[データセット]を選択して、新しいデータセットをプロジェクトに追加する。

 さて、ソリューション・エクスプローラでデータセットをダブルクリックするとグレーの「データセット・デザイナ」が表示されます。これはデータセットの内容を編集するためのものです。

図4 データセット・デザイナ
ソリューション・エクスプローラでデータセット(.xsdファイル)をダブルクリックすると開く。ここでデータセットにデータテーブルを追加できる。

 続いては、ここにデータテーブルを追加していきます。

データセット内にデータテーブルを作成

 データセット・デザイナには、データベース・エクスプローラからテーブルをドラッグ&ドロップしたり、ツールボックスからデータテーブルなどのコンポーネントをドラッグ&ドロップできます。

 実際のテーブルと同じ構造を持つデータテーブルを手っ取り早く作成するには、データベース・エクスプローラからテーブルをデータセット・デザイナ上にドラッグ&ドロップします。これによりデータベースからテーブルのスキーマ情報が取得され、データセット内にデータテーブルが作成されます。

図5 データセット内に追加されたデータテーブル
データベース・エクスプローラからテーブルをドラッグ&ドロップすると、実際のテーブルと同じ構造のデータテーブルがデータセット内に作成される。ここではテーブル名が「MyTable」であるためデータテーブルの名前も「MyTable」となっている。

 ここで作成するデータテーブルは、実際のテーブルの構造とまったく同じである必要はなく、データテーブルに独自に列を追加したり、プログラムで参照しないような不要な列を削除したりできます(が、話が複雑になりますので当面はデータテーブルの編集は行わずにそのまま使用します)。

 なお、図5では、データテーブルである「MyTable」の下に「MyTableTableAdapter」というボックスがくっついていますが、これは次回で解説予定の「テーブルアダプタ(TableAdapter)」です。このテーブルアダプタがテーブルからレコードを取得して、それをデータテーブルに格納をする役目を果たすのですが、今回のところは取りあえず無視してください。

 前回ではテーブルを1つしか作成しませんでしたが、データベースに複数のテーブルがある場合には、次の画面のように複数のデータテーブルを作成できます。テーブル間にリレーションが設定されている場合には、データテーブル間にも自動的にリレーションが設定されるようになっています。

図6 リレーションが設定された複数のデータテーブル
リレーションが設定されているテーブルをデータセットに追加した場合には、自動的にデータテーブルにもリレーションが設定される。

 例えば親子(マスター/詳細)関係のテーブルの内容を、2つのグリッドで連動させて表示するような場合には、リレーションが設定された2つのデータテーブルが必要になります。

 以上でデータテーブルを含むデータセットが作成できました。なお、ここで行ったことは、プログラムで使用するデータセットの構造の定義(デザイン)だけです。実際にこのデータセットをプログラムで使用する場合には、このデータセットの定義を基に、データセット・オブジェクトの作成が必要になります(VB 2005のIDEを使えば、それを行うコードは自動生成されます)。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。