共用方式為


HOW TO:將 Windows Form DataGrid 控制項繫結至資料來源

更新:2007 年 11 月

注意事項:

DataGridView 控制項會取代並且將功能加入至 DataGrid 控制項;不過您也可以選擇保留 DataGrid 控制項,以提供回溯相容性 (Backward Compatibility) 以及供未來使用。如需詳細資訊,請參閱 Windows Form DataGridView 和 DataGrid 控制項之間的差異

Windows Form DataGrid 控制項是特別設計來顯示資料來源的資訊。您可以在執行階段呼叫 SetDataBinding 方法來繫結此控制項。雖然您可顯示來自各種不同資料來源的資料,但最常見的來源是資料集和資料檢視。

若要以程式設計的方式資料繫結 DataGrid 控制項

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

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

    您實際上使用的程式碼要視資料集從何處取得資料而定。如果資料集是直接從資料庫填入,您通常會呼叫資料配接器 (Adapter) 的 Fill 方法,如下列範例所示,其中會填入名為 DsCategories1 的資料集:

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

    如果資料集是從 XML Web Service 填滿,您通常會在程式碼中建立服務的執行個體,接著呼叫其中一個方法來傳回資料集。接著您會將 XML Web Service 的資料集合併至您的本機資料集。下列範例示範如何建立名為 CategoriesService 的 XML Web Service 執行個體,呼叫其 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. (選擇性) 將適當的資料表樣式和資料行樣式加入至資料格。如果沒有資料表樣式,您將看到資料表,但只能看到最少的格式和所有的資料行。

請參閱

工作

HOW TO:將資料表和資料行加入至 Windows Form DataGrid 控制項

參考

DataGrid 控制項概觀 (Windows Form)

其他資源

DataGrid 控制項 (Windows Form)

Windows Form 資料繫結