次の方法で共有


DataRelation クラス

定義

2 つの 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しい を作成し、 の DataSetDataRelationCollection追加します。

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オブジェクトを相互に関連付けるために使用されます。 たとえば、Customer/Orders リレーションシップでは、Customers テーブルは親であり、Orders テーブルはリレーションシップの子です。 これは、主キーと外部キーの関係に似ています。 詳細については、「 DataRelations の移動」を参照してください。

リレーションシップは、親テーブルと子テーブルの一致する列の間に作成されます。 つまり、両方の列の DataType 値は同じである必要があります。

リレーションシップは、親 DataRow から子行にさまざまな変更を連鎖することもできます。 子行での値の変更方法を制御するには、 オブジェクトの に をConstraintCollectionDataTable追加ForeignKeyConstraintします。 は ConstraintCollection 、親テーブルの値が削除または更新されたときに実行するアクションを決定します。

DataRelationが作成されると、最初にリレーションシップを確立できることを確認します。 に DataRelationCollection追加された後、リレーションシップは無効になる変更を禁止することで維持されます。 が作成されて に追加される DataRelation 期間の間に DataRelationCollection、親行または子行に追加の変更を加える可能性があります。 これが原因で無効になったリレーションシップが発生すると、例外が生成されます。

Note

データの破損は、2 つのテーブル間で双方向の関係が定義されている場合に発生する可能性があります。 双方向リレーションシップは、同じ列を使用する 2 つの DataRelation オブジェクトで構成され、親子ロールが切り替えられます。 オブジェクトを保存するときに DataRelation 例外は発生しません。ただし、データの破損が発生する可能性があります。

DataRelationオブジェクトは、 の DataRelationCollectionプロパティ、および ParentRelationsChildRelationsDataTableの プロパティDataSetRelations介してアクセスできる に含まれています。

コンストラクター

DataRelation(String, DataColumn, DataColumn)

DataRelation 名、および親と子の DataRelation オブジェクトを指定して、DataColumn クラスの新しいインスタンスを初期化します。

DataRelation(String, DataColumn, DataColumn, Boolean)

名前、親と子の DataRelation オブジェクト、および制約を作成するかどうかを示す値を指定して、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

この DataTable の親 DataRelation を取得します。

RelationName

DataRelation から DataRelationCollection を取得する名前を取得または設定します。

メソッド

CheckStateForProperty()

このメソッドは、.NET インフラストラクチャをサポートしますが、独自に作成したコードから直接使用するためのものではありません。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
OnPropertyChanging(PropertyChangedEventArgs)

このメンバーは、.NET インフラストラクチャをサポートしますが、独自に作成したコードから直接使用するためのものではありません。

RaisePropertyChanging(String)

このメンバーは、.NET インフラストラクチャをサポートしますが、独自に作成したコードから直接使用するためのものではありません。

ToString()

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

適用対象

スレッド セーフ

この型は、マルチスレッド読み取り操作に安全です。 書き込み操作は同期する必要があります。

こちらもご覧ください