DataRelation クラス

定義

2 つの DataTable オブジェクト間の親子のリレーションシップを表します。Represents a parent/child relationship between two DataTable objects.

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
type DataRelation = class
Public Class DataRelation
継承
DataRelation
属性

次の例では、新しい DataRelation を作成し、それを DataSetDataRelationCollection に追加します。The following example creates a new DataRelation and adds it to the DataRelationCollection of a DataSet.

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 オブジェクトを使用して、2つの DataTable オブジェクトを相互に関連付けるために使用されます。A DataRelation is used to relate two DataTable objects to each other through DataColumn objects. たとえば、顧客と注文のリレーションシップでは、Customers テーブルが親であり、Orders テーブルがリレーションシップの子になります。For example, in a Customer/Orders relationship, the Customers table is the parent and the Orders table is the child of the relationship. これは、主キー/外部キーのリレーションシップに似ています。This is similar to a primary key/foreign key relationship. 詳細については、「 datarelation の移動」を参照してください。For more information, see Navigating DataRelations.

リレーションシップは、親テーブルと子テーブルの一致する列の間に作成されます。Relationships are created between matching columns in the parent and child tables. つまり、両方の列の DataType 値が同一である必要があります。That is, the DataType value for both columns must be identical.

また、リレーションシップによって、親 DataRow から子行にさまざまな変更を連鎖させることもできます。Relationships can also cascade various changes from the parent DataRow to its child rows. 子行の値がどのように変更されるかを制御するには、DataTable オブジェクトの ConstraintCollectionForeignKeyConstraint を追加します。To control how values are changed in child rows, add a ForeignKeyConstraint to the ConstraintCollection of the DataTable object. ConstraintCollection は、親テーブルの値が削除または更新されたときに実行するアクションを決定します。The ConstraintCollection determines what action to take when a value in a parent table is deleted or updated.

DataRelation が作成されると、まずリレーションシップが確立できるかどうかが確認されます。When a DataRelation is created, it first verifies that the relationship can be established. DataRelationCollectionに追加された後は、無効にする変更を禁止することによってリレーションシップが維持されます。After it is added to the DataRelationCollection, the relationship is maintained by disallowing any changes that would invalidate it. DataRelation が作成されて DataRelationCollectionに追加された期間の間に、親または子の行に対して追加の変更が加えられる可能性があります。Between the period when a DataRelation is created and added to the DataRelationCollection, it is possible for additional changes to be made to the parent or child rows. これによって無効になったリレーションシップが発生すると、例外が生成されます。An exception is generated if this causes a relationship that is no longer valid.

注意

2つのテーブル間に双方向のリレーションシップが定義されていると、データの破損が発生する可能性があります。Data corruption can occur if a bi-directional relation is defined between two tables. 双方向の関係は、同じ列を使用する2つの DataRelation オブジェクトで構成され、親子ロールは切り替わります。A bi-directional relation consists of two DataRelation objects that use the same columns, with the parent-child roles switched. DataRelation オブジェクトが保存されるときに例外は発生しません。ただし、データの破損が発生する可能性があります。No exception is raised when the DataRelation objects are saved; however, data corruption can occur.

DataRelation オブジェクトは DataRelationCollectionに含まれています。このオブジェクトは、DataSetRelations プロパティと、ChildRelationsParentRelations および DataTableプロパティを使用してアクセスできます。DataRelation objects are contained in a DataRelationCollection, which you can access through the Relations property of the DataSet, and the ChildRelations and ParentRelations properties of the DataTable.

コンストラクター

DataRelation(String, DataColumn, DataColumn)

DataRelation 名、および親と子の DataRelation オブジェクトを指定して、DataColumn クラスの新しいインスタンスを初期化します。Initializes a new instance of the DataRelation class using the specified DataRelation name, and parent and child DataColumn objects.

DataRelation(String, DataColumn, DataColumn, Boolean)

名前、親と子の DataRelation オブジェクト、および制約を作成するかどうかを示す値を指定して、DataColumn クラスの新しいインスタンスを初期化します。Initializes a new instance of the DataRelation class using the specified name, parent and child DataColumn objects, and a value that indicates whether to create constraints.

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

DataRelation 名、および親と子で一致した DataRelation オブジェクトの配列を指定して、DataColumn クラスの新しいインスタンスを初期化します。Initializes a new instance of the DataRelation class using the specified DataRelation name and matched arrays of parent and child DataColumn objects.

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

名前、親と子で一致した DataRelation オブジェクトの配列、および制約を作成するかどうかを示す値を指定して、DataColumn クラスの新しいインスタンスを初期化します。Initializes a new instance of the DataRelation class using the specified name, matched arrays of parent and child DataColumn objects, and value that indicates whether to create constraints.

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

このコンストラクターは、Visual Studio 環境でのデザイン時のサポートのために用意されています。This constructor is provided for design time support in the Visual Studio environment.

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

このコンストラクターは、Visual Studio 環境でのデザイン時のサポートのために用意されています。This constructor is provided for design time support in the Visual Studio environment.

プロパティ

ChildColumns

このリレーションシップの子 DataColumn オブジェクトを取得します。Gets the child DataColumn objects of this relation.

ChildKeyConstraint

このリレーションシップの ForeignKeyConstraint を取得します。Gets the ForeignKeyConstraint for the relation.

ChildTable

このリレーションシップの子テーブルを取得します。Gets the child table of this relation.

DataSet

DataSet が属する DataRelation を取得します。Gets the DataSet to which the DataRelation belongs.

ExtendedProperties

カスタマイズしたプロパティを格納するコレクションを取得します。Gets the collection that stores customized properties.

Nested

DataRelation オブジェクトが入れ子になっているかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether DataRelation objects are nested.

ParentColumns

この DataColumn の親列である DataRelation オブジェクトの配列を取得します。Gets an array of DataColumn objects that are the parent columns of this DataRelation.

ParentKeyConstraint

UniqueConstraint の親列内の値が一意であることを保証する DataRelation を取得します。Gets the UniqueConstraint that guarantees that values in the parent column of a DataRelation are unique.

ParentTable

この DataTable の親 DataRelation を取得します。Gets the parent DataTable of this DataRelation.

RelationName

DataRelation から DataRelationCollection を取得する名前を取得または設定します。Gets or sets the name used to retrieve a DataRelation from the DataRelationCollection.

メソッド

CheckStateForProperty()

このメソッドは、.NET Framework インフラストラクチャをサポートします。独自に作成したコードから直接使用するためのものではありません。This method supports the .NET Framework infrastructure and is not intended to be used directly from your code.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
OnPropertyChanging(PropertyChangedEventArgs)

このメンバーは .NET Framework インフラストラクチャをサポートします。コードから直接使用するためのものではありません。This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.

RaisePropertyChanging(String)

このメンバーは .NET Framework インフラストラクチャをサポートします。コードから直接使用するためのものではありません。This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.

ToString()

RelationName が存在する場合は、このリレーションシップの名前を取得します。Gets the RelationName, if one exists.

適用対象

スレッド セーフ

この型は、マルチスレッドの読み取り操作に対して安全です。This type is safe for multithreaded read operations. 書き込み操作はすべて同期する必要があります。You must synchronize any write operations.

こちらもご覧ください