ここでは、次のデータベース製品とサンプルを元に操作方法を解説します。
- Microsoft SQL Server 2005/2008/2008 R2/2012/2014
- AdventureWorksデータベース
データベースの接続
SQL Serverのデータソースをプロジェクトに登録します。この作業はMultiRowに依存しません。
- Visual Studioを起動して、新規にWindows Application プロジェクトを作成する。
- Visual Studioの[プロジェクト]-[新しいデータソースの追加]メニューをクリックする。
- Visual Studio 2010では、[データ]-[新しいデータソースの追加]メニューをクリックします。
- 表示された「データ ソース構成ウィザード」の画面で、「データベース」を選択し、[次へ]をクリックする。
- 表示された「データ接続の選択」画面で、[新しい接続]をクリックし次の構成で接続を追加する。
- データソース:Microsoft SQL Server (SqlClient)
- サーバー名(例):(local)\SQLEXPRESS
- データベースの選択または入力:AdventureWorks2012
- 接続を追加した後、[次へ]をクリックする。
- 「接続文字列をアプリケーション構成ファイルに保存する」画面で[次へ]をクリックする。
- 「データベース オブジェクトの選択」画面で、次の2つのテーブルのチェックをオンにする。
- Employee
- Person
- [完了]をクリックする。
- Visual Studioの「データソース」ウィンドウに「Employee」と「Person」が追加されていることを確認する。
テンプレートの設計
MultiRowのテンプレートを作成し、テーブルのフィールドを割り当てます。
- Visual Studioの[プロジェクト]-[新しい項目の追加]メニューをクリックする。
- 「新しい項目の追加」画面で、「MultiRow 8.0 テンプレート」を選択し、[追加]ボタンをクリックする。
- 「Template1.cs デザイン」画面が表示されることを確認する。
- 次の構成で列ヘッダを作成する。
- 「ツールボックス」ウィンドウから、ColumnHeaderCellをColumnHeaderSection1にドラッグする(4回繰り返す)。
- ドラッグしたセルのValueプロパティに「ID」「LastName」「PersonType」「JobTitle」を設定する。
- columnHeaderSection1の高さをセルの高さに合わせる。
- 次の構成で行を作成する。
- 「ツールボックス」ウィンドウから、RowHeaderCellをrow にドラッグする。
- 「ツールボックス」ウィンドウから、TextBoxCellをrowにドラッグする(2回繰り返す)。
- 「ツールボックス」ウィンドウから、ComboBoxCellをrowにドラッグする。
- ComboBoxCellのDropDownStyleプロパティにDropDownを設定する。
- ドラッグしたセルのDataFieldプロパティに「BusinessEntityID」「LastName」「PersonType」を設定する。(ComboBoxCellのDataFieldプロパティは空のまま)
- rowの高さをセルの高さに合わせる。
- テンプレートの幅をセルの幅に合わせる。
- プロジェクトを保存する。
グリッドへの接続
フォームにGcMultiRowコントロールを配置して、データソースとテンプレートをグリッドに割り当てます。
以上でグリッドへのテンプレートとデータソースの割り当ては完了です。プロジェクトを実行すると、データソースの値がグリッドに読み込まれます。
- フォーム(Form1)のデザイン画面を開く。
- 「データソース」ウィンドウから「Person」テーブルを選択し、ドロップダウンリストから「カスタマイズ...」をクリックする。
- 表示された「オプション」画面で「関連付けられたコントロール」の「GcMultiRow」のチェックをオンにする。
- [OK]ボタンをクリックしてダイアログを閉じる。
- 「データソース」ウィンドウから「Person」テーブルを選択し、ドロップダウンリストから「GcMultiRow」をクリックする。
- 「Person」テーブルをフォーム(Form1)のデザイン画面にドラッグ&ドロップする。
- フォームにBindingNavigator(personBindingNavigator)とGcMultiRow(personGcMultiRow)が配置されることを確認する。
- Visual Studioの[ビルド]-[ソリューションのビルド]メニューをクリックする。
- 「ツールボックス」ウィンドウから「Template1」をフォームにドラッグ&ドロップする。
- フォーム上のpersonGcMultiRowコントロールを選択し、スマートタグから「テンプレートの選択」で「template11」を選択する。
以上でグリッドへのテンプレートとデータソースの割り当ては完了です。プロジェクトを実行すると、データソースの値がグリッドに読み込まれます。

ルックアップ列の設定
PersonテーブルのBusinessEntityID列の値は、EmployeeテーブルのBusinessEntityID列の値と同じです。このBusinessEntityID列の値を元に、EmployeeテーブルのJobTitle列の値を列挙します。
プロジェクトを実行すると、ComboBoxCellにJobTitle列の値が列挙されることを確認できます。
- 「データソース」ウィンドウから「Employee」テーブルを選択し、フォーム(Form1)のデザイン画面にドラッグ&ドロップする。
- フォーム上に配置されるDataGirdViewコントロールを削除する。
- フォームのコードエディタを開き、次のコードを貼り付ける。
プロジェクトを実行すると、ComboBoxCellにJobTitle列の値が列挙されることを確認できます。