DataRelation 類別

定義

表示兩個 DataTable 物件之間的父子關聯性。

public ref class DataRelation
[System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))]
public class DataRelation
public class DataRelation
[System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))]
[System.Serializable]
public class DataRelation
[<System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))>]
type DataRelation = class
type DataRelation = class
[<System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))>]
[<System.Serializable>]
type DataRelation = class
Public Class DataRelation
繼承
DataRelation
屬性

範例

下列範例會建立新的 DataRelation ,並將其新增至 DataRelationCollectionDataSet

private void CreateRelation()
{
    // Get the DataColumn objects from two DataTable objects
    // in a DataSet. Code to get the DataSet not shown here.
    DataColumn parentColumn =
        DataSet1.Tables["Customers"].Columns["CustID"];
    DataColumn childColumn =
        DataSet1.Tables["Orders"].Columns["CustID"];
    // Create DataRelation.
    DataRelation relCustOrder;
    relCustOrder = new DataRelation("CustomersOrders",
        parentColumn, childColumn);
    // Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder);
}
Private Sub CreateRelation()
    ' Get the DataColumn objects from two DataTable objects 
    ' in a DataSet. Code to get the DataSet not shown here.
    Dim parentColumn As DataColumn = _
        DataSet1.Tables("Customers").Columns("CustID")
    Dim childColumn As DataColumn = DataSet1.Tables( _
        "Orders").Columns("CustID")

    ' Create DataRelation.
    Dim relCustOrder As DataRelation
    relCustOrder = New DataRelation( _
        "CustomersOrders", parentColumn, childColumn)

    ' Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder)
End Sub

備註

DataRelation用來透過 DataColumn 物件彼此關聯兩 DataTable 個物件。 例如,在 Customer/Orders 關聯性中,Customers 資料表是父系,而 Orders 資料表是關聯性的子系。 這類似于主鍵/外鍵關聯性。 如需詳細資訊,請參閱 巡覽 DataRelations

父資料表和子資料工作表中的相符資料行之間會建立關聯性。 也就是說, DataType 這兩個數據行的值必須相同。

關聯性也可以串聯從父 DataRow 系到其子資料列的各種變更。 若要控制子資料列中的值變更方式,請將 新增 ForeignKeyConstraintConstraintCollection DataTable 物件的 。 會 ConstraintCollection 決定在刪除或更新父資料表中的值時要採取的動作。

DataRelation建立 時,它會先確認可以建立關聯性。 將它新增至 DataRelationCollection 之後,會藉由不允許任何將它失效的變更來維護關聯性。 建立並加入 至 DataRelationCollectionDataRelation 期間之間,可能會對父資料列或子資料列進行其他變更。 如果造成不再有效的關聯性,就會產生例外狀況。

注意

如果兩個數據表之間定義了雙向關聯,就會發生資料損毀。 雙向關聯包含兩 DataRelation 個使用相同資料行的物件,以及切換父子角色。 儲存物件時 DataRelation 不會引發例外狀況;不過,可能會發生資料損毀。

DataRelation 物件包含在 中 DataRelationCollection ,您可以透過 RelationsDataSet 屬性和 的 ChildRelationsParentRelations 屬性 DataTable 來存取。

建構函式

DataRelation(String, DataColumn, DataColumn)

使用指定的 DataRelation 名稱以及父和子 DataRelation 物件,初始化 DataColumn 類別的新執行個體。

DataRelation(String, DataColumn, DataColumn, Boolean)

使用指定的名稱、父和子 DataRelation 物件,以及指出是否建立條件約束 (Constraint) 的值,初始化 DataColumn 類別的新執行個體。

DataRelation(String, DataColumn[], DataColumn[])

使用指定的 DataRelation 名稱以及父和子 DataRelation 物件的相符陣列,初始化 DataColumn 類別的新執行個體。

DataRelation(String, DataColumn[], DataColumn[], Boolean)

使用指定的名稱、父和子 DataRelation 物件的相符陣列,以及指出是否建立條件約束的值,初始化 DataColumn 類別的新執行個體。

DataRelation(String, String, String, String, String, String[], String[], Boolean)

這個建構函式是在 Visual Studio 環境中,針對支援設計階段而提供。

DataRelation(String, String, String, String[], String[], Boolean)

這個建構函式是在 Visual Studio 環境中,針對支援設計階段而提供。

屬性

ChildColumns

取得這個關聯的子 DataColumn 物件。

ChildKeyConstraint

取得關聯的 ForeignKeyConstraint

ChildTable

取得這個關聯的子資料表。

DataSet

取得 DataSet 所屬的 DataRelation

ExtendedProperties

取得儲存自訂屬性的集合。

Nested

取得或設定值,指出 DataRelation 物件是否為巢狀。

ParentColumns

取得為這個 DataColumn 父資料行的 DataRelation 物件陣列。

ParentKeyConstraint

取得 UniqueConstraint,確保 DataRelation 之父資料行中的值為唯一。

ParentTable

取得這個 DataTableDataRelation

RelationName

取得或設定用來從 DataRelation 擷取 DataRelationCollection 的名稱。

方法

CheckStateForProperty()

這個方法支援 .NET 基礎結構,並不適合直接從您的程式碼使用。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnPropertyChanging(PropertyChangedEventArgs)

這個成員支援 .NET 基礎結構,而且不適合直接從程式碼使用。

RaisePropertyChanging(String)

這個成員支援 .NET 基礎結構,而且不適合直接從程式碼使用。

ToString()

取得 RelationName (如果關聯名稱存在)。

適用於

執行緒安全性

此類型適用于多執行緒讀取作業。 您必須同步處理任何寫入作業。

另請參閱