共用方式為


如何:將 Windows Form DataGrid 控制項繫結至資料來源

備註

ToolStrip 控制項會取代 ToolBar 控制項並加入其他功能,不過您也可以選擇保留 ToolBar 控制項,以提供回溯相容性及未來使用。 如需詳細資訊,請參閱 Windows Forms DataGridView 和 DataGrid 控制項之間的差異

Windows Forms DataGrid 控制項專門設定用於顯示資料來源的資訊。 您可以藉由呼叫 SetDataBinding 方法,在執行階段繫結控制項。 雖然您可以從各種資料來源顯示資料,但最常見的來源是資料集和資料檢視。

以程式設計方式繫結 DataGrid 控制項

  1. 撰寫程式碼以填入資料集。

    如果資料來源是資料集或以資料集資料表為基礎的資料檢視,請將程式碼新增至表單以填入資料集。

    所應使用的確切程式碼取決於資料集取得資料的位置。 如果資料集直接從資料庫填入,您通常會呼叫資料配接器的 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());
    
  2. 呼叫 DataGrid 控制項的 SetDataBinding 方法,為其傳入資料來源和資料成員。 如果不需要明確傳遞資料成員,請傳遞空字串。

    備註

    如果您是第一次繫結方格,可以設定控制項的 DataSourceDataMember 屬性。 不過,這些屬性一旦設定後就無法重設。 因此,建議您一律使用 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, "");
    
  3. (選用) 將適當的資料表樣式和資料行樣式新增至方格。 如果沒有資料表樣式,您會看到資料表,但格式最少,且全部資料行都可見。

另請參閱