Share via


HOW TO:存取關聯 DataTable 中的資料錄

當資料集有相關的資料表時,可以透過 DataRelation 物件使用其他資料表上的相關資料錄。 例如,可以使用包含 Customers 和 Orders 資料表的資料集。

您可以使用 DataRelation 物件來尋找相關的資料錄,其方法是在父資料表中呼叫 DataRowGetChildRows 方法;這個方法會傳回相關子資料錄的陣列。 或者,您也可以在子資料表中呼叫 DataRowGetParentRow 方法;這個方法會從父資料表傳回單一 DataRow

這個說明頁面提供使用具型別資料集的範例。 如需在不具型別資料集中巡覽關聯性的詳細資訊,請參閱瀏覽 DataRelation (ADO.NET)

注意事項注意事項

如果您正在 Windows Form 應用程式中工作,而且使用資料繫結功能來顯示資料,則設計工具產生的表單可能會為應用程式提供足夠的功能。 如需詳細資訊,請參閱將控制項繫結至 Visual Studio 中的資料上的頁面,尤其是 HOW TO:在 Windows Form 應用程式中顯示相關的資料逐步解說:顯示 Windows Form 上的相關資料

下列程式碼範例將示範如何在具型別資料集中向上及向下巡覽關聯性, 這些範例使用具型別 DataRow (NorthwindDataSet.OrdersRow) 和產生的 FindByPrimaryKey (FindByCustomerID) 方法來尋找所需的資料列,並傳回相關的記錄。 只有當您具有下列項目時,這些範例才會正確地編譯及執行:

  • 名為 NorthwindDataSet (含 Customers 資料表) 的資料集之執行個體。

  • Orders 資料表

  • 名為 FK_Orders_Customers 的關聯性 (與程式碼範圍可用的兩個資料表相關)。

此外,這兩個資料表必須已填入資料,才能傳回資料錄。

存取關聯資料錄

若要傳回所選父資料錄的子資料錄

  • 呼叫特定 Customers 資料列的 GetChildRows 方法,並從 Orders 資料表傳回資料列陣列:

    Dim customerID As String = "ALFKI"
    Dim orders() As NorthwindDataSet.OrdersRow
    
    orders = CType(NorthwindDataSet.Customers.FindByCustomerID(customerID).
        GetChildRows("FK_Orders_Customers"), NorthwindDataSet.OrdersRow())
    
    MessageBox.Show(orders.Length.ToString())
    
    string custID = "ALFKI";
    NorthwindDataSet.OrdersRow[] orders;
    
    orders = (NorthwindDataSet.OrdersRow[])northwindDataSet.Customers.
        FindByCustomerID(custID).GetChildRows("FK_Orders_Customers");
    
    MessageBox.Show(orders.Length.ToString());
    

若要傳回所選子資料錄的父資料錄

  • 呼叫特定 Orders 資料列的 GetParentRow 方法,並從 Customers 資料表傳回單一資料列:

    Dim orderID As Integer = 10707
    Dim customer As NorthwindDataSet.CustomersRow
    
    customer = CType(NorthwindDataSet.Orders.FindByOrderID(orderID).
        GetParentRow("FK_Orders_Customers"), NorthwindDataSet.CustomersRow)
    
    MessageBox.Show(customer.CompanyName)
    
    int orderID = 10707;
    NorthwindDataSet.CustomersRow customer;
    
    customer = (NorthwindDataSet.CustomersRow)northwindDataSet.Orders.
        FindByOrderID(orderID).GetParentRow("FK_Orders_Customers");
    
    MessageBox.Show(customer.CompanyName); 
    

請參閱

概念

將控制項繫結至 Visual Studio 中的資料

其他資源

資料集中的關聯性

Visual Studio 資料應用程式的概觀

連接至 Visual Studio 中的資料

準備您的應用程式以接收資料

將資料擷取至您的應用程式中

在您的應用程式中編輯資料

驗證資料

儲存資料