方法: データ ソースに Windows フォーム DataGrid コントロールをバインドするHow to: Bind the Windows Forms DataGrid Control to a Data Source

注意

DataGridView コントロールは、DataGrid コントロールに代わると共に追加の機能を提供します。ただし、DataGrid コントロールは、下位互換性を保つ目的および将来使用する目的で保持されます。The DataGridView control replaces and adds functionality to the DataGrid control; however, the DataGrid control is retained for both backward compatibility and future use, if you choose. 詳細については、「Windows フォームの DataGridView コントロールと DataGrid コントロールの違いについて」を参照してください。For more information, see Differences Between the Windows Forms DataGridView and DataGrid Controls.

Windows フォームDataGridコントロールは、特にデータソースからの情報を表示するように設計されています。The Windows Forms DataGrid control is specifically designed to display information from a data source. 実行時にコントロールをバインドするには、 SetDataBindingメソッドを呼び出します。You bind the control at run time by calling the SetDataBinding method. さまざまなデータソースのデータを表示できますが、最も一般的なソースはデータセットとデータビューです。Although you can display data from a variety of data sources, the most typical sources are datasets and data views.

プログラムによって DataGrid コントロールをデータバインドするにはTo data-bind the DataGrid control programmatically

  1. データセットを埋めるコードを記述します。Write code to fill the dataset.

    データソースがデータセットまたはデータセットテーブルに基づくデータビューの場合は、データセットを埋めるためのコードをフォームに追加します。If the data source is a dataset or a data view based on a dataset table, add code to the form to fill the dataset.

    実際に使用するコードは、データセットがデータを取得している場所によって異なります。The exact code you use depends on where the dataset is getting data. データセットがデータベースから直接作成されている場合は、通常Fill 、次の例のようにデータアダプターのメソッドを呼び出します。この例DsCategories1では、というデータセットを設定します。If the dataset is being populated directly from a database, you typically call the Fill method of a data adapter, as in the following example, which populates a dataset called DsCategories1:

    sqlDataAdapter1.Fill(DsCategories1)  
    
    sqlDataAdapter1.Fill(DsCategories1);  
    
    sqlDataAdapter1->Fill(dsCategories1);  
    

    データセットが XML Web サービスから読み込まれている場合は、通常、コード内にサービスのインスタンスを作成し、そのメソッドの1つを呼び出してデータセットを返します。If the dataset is being filled from an XML Web service, you typically create an instance of the service in your code and then call one of its methods to return a dataset. 次に、データセットを XML Web サービスからローカルデータセットにマージします。You then merge the dataset from the XML Web service into your local dataset. 次の例は、という名前CategoriesServiceの XML Web サービスのインスタンスを作成し、そのGetCategoriesメソッドを呼び出し、結果のデータセットをというDsCategories1ローカルデータセットにマージする方法を示しています。The following example shows how you can create an instance of an XML Web service called CategoriesService, call its GetCategories method, and merge the resulting dataset into a local dataset called 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());  
    
  2. DataGridコントロールのSetDataBindingメソッドを呼び出して、データソースとデータメンバーを渡します。Call the DataGrid control's SetDataBinding method, passing it the data source and a data member. データメンバーを明示的に渡す必要がない場合は、空の文字列を渡します。If you do not need to explicitly pass a data member, pass an empty string.

    注意

    グリッドを初めてバインドする場合は、コントロールのDataSourceプロパティとDataMemberプロパティを設定できます。If you are binding the grid for the first time, you can set the control's DataSource and DataMember properties. ただし、これらのプロパティがいったん設定されると、これらのプロパティをリセットすることはできません。However, you cannot reset these properties once they have been set. したがって、常にSetDataBindingメソッドを使用することをお勧めします。Therefore, it is recommended that you always use the SetDataBinding method.

    次の例は、というDsCustomers1データセットの Customers テーブルにプログラムでバインドする方法を示しています。The following example shows how you can programmatically bind to the Customers table in a dataset called DsCustomers1:

    DataGrid1.SetDataBinding(DsCustomers1, "Customers")  
    
    DataGrid1.SetDataBinding(DsCustomers1, "Customers");  
    
    dataGrid1->SetDataBinding(dsCustomers1, "Customers");  
    

    Customers テーブルがデータセット内の唯一のテーブルである場合は、次の方法でグリッドをバインドすることもできます。If the Customers table is the only table in the dataset, you could alternatively bind the grid this way:

    DataGrid1.SetDataBinding(DsCustomers1, "")  
    
    DataGrid1.SetDataBinding(DsCustomers1, "");  
    
    dataGrid1->SetDataBinding(dsCustomers1, "");  
    
  3. Optional適切なテーブルスタイルと列スタイルをグリッドに追加します。(Optional) Add the appropriate table styles and column styles to the grid. テーブルスタイルが存在しない場合は、テーブルが表示されますが、すべての列が表示されます。If there are no table styles, you will see the table, but with minimal formatting and with all columns visible.

関連項目See also