ComboBox のデータ バインディングのサンプル

更新 : 2007 年 11 月

このサンプルでは、ComboBox コントロールおよび DataGridView コントロールにデータをバインドする方法を示します。

サンプルとそのインストール手順を取得するには

  • 次のいずれかを実行します。

    • [ヘルプ] メニューの [サンプル] をクリックします。

      サンプルの情報を示す Readme が表示されます。

    • Visual Studio 2008 のサンプルの Web サイトにアクセスします。ここには、サンプルの最新版が掲載されています。

    • Visual Studio をインストールしたコンピュータで、サンプルを検索します。既定では、サンプルおよび Readme ファイルは drive:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid にインストールされています。Visual Studio の Express Edition については、すべてのサンプルがオンラインで提供されています。

詳細については、「サンプル ファイルの格納場所」を参照してください。

x8ybe6s2.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。

このサンプルを実行するには

  • F5 キーを押します。

必要条件

このサンプルには、Northwind サンプル データベースが必要です。詳細については、「方法 : サンプル用のデータベース コンポーネントのインストールおよびトラブルシューティング」を参照してください。

使用例

このコードでは、6 種類のデータ ソースを ComboBox コントロールにバインドする方法の例を示します。バインドの対象データは次のとおりです。

メイン フォームの読み込み時に、簡単な SQL SELECT ステートメントを使用して、Northwind データベースの Products テーブルを DataSet に取得します。このとき、ProductName 列を並べ替えたビューを提供する DataView も併せて作成します。TableAdapter および BindingSource を使用して、Products テーブルを別の DataSet に読み込みます。

次にユーザーは、コンボ ボックス コントロールをバインドすることにより、データを読み込むことができます。バインドの対象は、他の色の配列、図形の配列リスト、構造体で定義された営業部門が格納された高度な配列リスト、いずれかのデータセットに含まれている製品テーブル、または並べ替えられたデータ ビューです。バインド先がデータセット、データ ビュー、または営業部門の高度な配列リストの場合は、コンボ ボックスでエントリを選択したときに、そのエントリに関連付けられた値も表示されます。バインド先がデータ コネクタの場合は、コンボ ボックスとデータグリッドビューが同期します。コンボ ボックスの値を変えると、データグリッドビューも同じレコードに移動します。グリッド内でデータセットをスクロールするか、またはナビゲーション ツール バーを使用すると、コンボ ボックスが更新されます。

メイン フォームには、コンボ ボックス コントロール、データを読み込むためのボタン コントロール、およびデータ ソースと選択された値を表示するための 2 つのラベル コントロールとグリッドがあります。ArrayListDataSet、および DataView の使用により、コンボ ボックス コントロールに表示されている各項目に値を関連付けることができます。たとえばユーザーが、コンボ ボックスにバインドされている製品テーブルから製品エントリ Chai を選択すると、選択されたエントリとして Chai が表示されますが、それに関連付けられている ProductId も SelectedValue プロパティを通じて取得できます。ValueMember プロパティを使用すると、その関連付けられた値を持つ項目を選択できます。DisplayMember プロパティを使用すると、コンボ ボックス コントロールに表示される項目を選択できます。

このサンプルの作成

このフォームの大部分は、コンポーネントをフォームにドラッグし、スマート タグと [プロパティ] ウィンドウの設定を使用することによって作成されました。次に示すのは、このフォームの DataGridView 部分を 1 から作成する方法の簡単な概要です。

  1. 新しい Windows アプリケーション プロジェクトを作成します。

  2. Form1 を開いた状態で、[データ ソース] ウィンドウを選択します。[データ] メニューを使用してアクティブにすることもできます。

  3. [データ ソース] ウィンドウで、[新しいデータ ソースの追加] をクリックします。

  4. データ ソース構成ウィザードで、データ ソースの種類として [データベース] を選択します。

  5. データ接続は、Northwind が格納されているサーバーを選択します。

  6. 次に示す手順で、厳密に型指定されたアプリケーション設定ファイルに接続文字列を保存します。

    1. [データベース オブジェクトの選択] で、Products テーブルを選択します。

    2. [完了] をクリックして、Northwind データベースに応じて型指定されたデータセットを作成します。[データ ソース] ウィンドウに結果が表示されます。

  7. [データ ソース] ウィンドウで、Products テーブルを Form1 にドラッグします。

  8. この結果、データ バインドされた DataGridView コントロールと BindingNavigator コントロールがフォームのデザイナ画面に表示されます。また、NorthwindDataSet、ProductsTableAdapter、および ProductsBindingSource がコンポーネント トレイに追加されます。

フォーム内でのデータの読み込み

この例では、フォームへデータを読み込むときに、ユーザーが指定するパラメータは使用しません。データセット デザイナを使用すると、再利用可能な DataAdapter を使用して dsProducts2 にデータを読み込むことができます。

[データ ソース] ウィンドウから Employees テーブルをドラッグすると、Visual Studio は、TableAdapter で既定のクエリを呼び出すコードを Form.Load イベントに自動的に配置します。このサンプルでは、このコードは btnDC の Click メソッドに移動してあります。

' Fill the Lookup Tables
Me.ProductsTableAdapter.Fill(Me.NorthwindDataSet.Products)

参照

処理手順

方法 : サンプル用のデータベース コンポーネントのインストールおよびトラブルシューティング

方法 : Windows フォームの ComboBox または ListBox コントロールをデータにバインドする

概念

Windows フォームがサポートするデータ ソース

参照

ComboBox

DataSource

ArrayList

DataTable

DataView