方法 : データ ソースに Windows フォーム DataGrid コントロールをバインドする
更新 : 2007 年 11 月
メモ : |
---|
DataGridView コントロールは、DataGrid コントロールに代わると共に追加の機能を提供します。ただし、DataGrid コントロールは、下位互換性を保つ目的および将来使用する目的で保持されます。詳細については、「Windows フォームの DataGridView コントロールと DataGrid コントロールの違いについて」を参照してください。 |
Windows フォームの DataGrid コントロールは、データ ソースの情報を表示するようにデザインされています。実行時には SetDataBinding メソッドを呼び出してコントロールをバインドします。各種データ ソースのデータを表示できますが、最も一般的なソースはデータセットとデータ ビューです。
プログラムによって DataGrid コントロールをデータ連結するには
データセットにデータを読み込むコードを記述します。
データ ソースが、データセット テーブルに基づくデータセットまたはデー タビューの場合は、そのデータセットにデータを読み込むためのコードをフォームに追加します。
実際に使用するコードは、データセットがデータをどこで取得するかに依存します。データセットにデータベースのデータを直接読み込む場合は、通常はデータ アダプタの Fill メソッドを呼び出します。次の例では、 DsCategories1 というデータセットにデータを読み込んでいます。
sqlDataAdapter1.Fill(DsCategories1)
sqlDataAdapter1.Fill(DsCategories1);
sqlDataAdapter1->Fill(dsCategories1);
XML Web サービスのデータをデータセットに読み込む場合は、通常、サービスのインスタンスを作成するコードを記述し、データセットを返すメソッドのいずれかを呼び出します。その後、XML Web サービスからのデータセットをローカルのデータセットにマージします。次の例は、 CategoriesService という XML Web サービスのインスタンスを作成し、その GetCategories メソッドを呼び出し、結果のデータセットを DsCategories1 というローカル データセットにマージする方法を示します。
Dim ws As New MyProject.localhost.CategoriesService() ws.Credentials = System.Net.CredentialCache.DefaultCredentials DsCategories1.Merge(ws.GetCategories())
MyProject.localhost.CategoriesService ws = new MyProject.localhost.CategoriesService(); ws.Credentials = System.Net.CredentialCache.DefaultCredentials; DsCategories1.Merge(ws.GetCategories());
MyProject::localhost::CategoriesService^ ws = new MyProject::localhost::CategoriesService(); ws->Credentials = System::Net::CredentialCache::DefaultCredentials; dsCategories1->Merge(ws->GetCategories());
データ ソースとデータ メンバを引数として、DataGrid コントロールの SetDataBinding メソッドを呼び出します。データ メンバを明示的に渡す必要がない場合は、空の文字列を渡します。
メモ : グリッドのバインドを初めて実行する場合は、このコントロールの DataSource プロパティおよび DataMember プロパティを設定できます。ただし、これらのプロパティは、一度設定するとリセットできません。したがって、常に SetDataBinding メソッドを使用することをお勧めします。
次の例は、プログラムで DsCustomers1 というデータセットの Customers テーブルにバインドする方法を示しています。
DataGrid1.SetDataBinding(DsCustomers1, "Customers")
DataGrid1.SetDataBinding(DsCustomers1, "Customers");
dataGrid1->SetDataBinding(dsCustomers1, "Customers");
データセットに Customers テーブル以外のテーブルが存在しない場合は、代わりに次の方法でグリッドを連結できます。
DataGrid1.SetDataBinding(DsCustomers1, "")
DataGrid1.SetDataBinding(DsCustomers1, "");
dataGrid1->SetDataBinding(dsCustomers1, "");
(必要に応じて) 適切なテーブル スタイルと列スタイルをグリッドに追加します。テーブル スタイルがなくてもテーブルを表示できますが、その場合は最低限の書式だけが適用され、すべての列が表示されます。
参照
処理手順
方法 : Windows フォーム DataGrid コントロールにテーブルと列を追加する
参照
DataGrid コントロールの概要 (Windows フォーム)