DataRelation クラス
アセンブリ: System.Data (system.data.dll 内)


DataRelation は、DataColumn オブジェクトを通じて 2 つの DataTable オブジェクトを相互に関連付けるために使用されます。たとえば、Customer/Orders のリレーションシップでは、Customers テーブルがこのリレーションシップの親であり、Orders テーブルが子です。これは、主キー/外部キーのリレーションシップに似ています。詳細については、「テーブル間のリレーションシップの移動」を参照してください。
リレーションシップは、親テーブル内と子テーブル内の一致する列の間に作成されます。つまり、両方の列の DataType 値が同じである必要があります。
リレーションシップによって、親 DataRow から子行へ連鎖変更を行うこともできます。子行の値の変更方法を制御するには、ForeignKeyConstraint を DataTable オブジェクトの ConstraintCollection に追加します。ConstraintCollection は、親テーブル内の値が削除または更新されたときに実行されるアクションを決定します。
DataRelation が作成されると、最初に、このリレーションシップを設定できるかどうかを検証します。DataRelationCollection に追加された後、リレーションシップは、無効にしてしまうような変更を一切できないようにすることで保持されます。DataRelation が作成されてから、DataRelationCollection に追加されるまでの間に、親行または子行に追加変更を行うことができます。変更の結果、リレーションシップが無効になった場合は例外が生成されます。
DataRelation オブジェクトは DataRelationCollection に格納されます。このオブジェクトにアクセスするには、DataSet の Relations プロパティ、および DataTable の ChildRelations プロパティと ParentRelations プロパティを使用します。

新しい DataRelation を作成し、DataSet の DataRelationCollection に追加する例を次に示します。
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
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); }

System.Data.DataRelation


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataRelation コンストラクタ (String, DataColumn, DataColumn)
アセンブリ: System.Data (system.data.dll 内)

Public Sub New ( _ relationName As String, _ parentColumn As DataColumn, _ childColumn As DataColumn _ )
Dim relationName As String Dim parentColumn As DataColumn Dim childColumn As DataColumn Dim instance As New DataRelation(relationName, parentColumn, childColumn)
public function DataRelation ( relationName : String, parentColumn : DataColumn, childColumn : DataColumn )
- relationName
DataRelation の名前。null 参照 (Visual Basic では Nothing) または空の文字列 ("") の場合は、作成したオブジェクトを DataRelationCollection に追加するときに既定の名前が使用されます。
- parentColumn
このリレーションシップの親 DataColumn。


新しい DataRelation を作成し、DataSet の DataRelationCollection に追加する例を次に示します。
Private Sub CreateRelation() ' Code to get the DataSet not shown here. ' Get the DataColumn objects from two DataTable ' objects in a DataSet. Dim parentCols() As DataColumn = New DataColumn() _ {DataSet1.Tables("Customers").Columns("CustID"), _ DataSet1.Tables("Customers").Columns("OrdID")} Dim childCols() As DataColumn = New DataColumn() _ {DataSet1.Tables("Orders").Columns("CustID"), _ DataSet1.Tables("Orders").Columns("OrdID")} ' Create DataRelation. Dim CustOrderRel As DataRelation = New DataRelation( _ "CustomersOrders", parentCols, childCols) ' Add the relation to the DataSet. DataSet1.Relations.Add(CustOrderRel) End Sub
private void CreateRelation() { // Code to get the DataSet not shown here. // Get the DataColumn objects from two DataTable // objects in a DataSet. DataColumn[] parentCols = new DataColumn[] {DataSet1.Tables["Customers"].Columns["CustID"], DataSet1.Tables["Customers"].Columns["OrdID"]}; DataColumn[] childCols= new DataColumn[] {DataSet1.Tables["Orders"].Columns["CustID"], DataSet1.Tables["Orders"].Columns["OrdID"]}; // Create DataRelation. DataRelation CustOrderRel = new DataRelation( "CustomersOrders", parentCols, childCols); // Add the relation to the DataSet. DataSet1.Relations.Add(CustOrderRel); }

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataRelation コンストラクタ (String, String, String, String[], String[], Boolean)
アセンブリ: System.Data (system.data.dll 内)

Public Sub New ( _ relationName As String, _ parentTableName As String, _ childTableName As String, _ parentColumnNames As String(), _ childColumnNames As String(), _ nested As Boolean _ )
Dim relationName As String Dim parentTableName As String Dim childTableName As String Dim parentColumnNames As String() Dim childColumnNames As String() Dim nested As Boolean Dim instance As New DataRelation(relationName, parentTableName, childTableName, parentColumnNames, childColumnNames, nested)
public DataRelation ( string relationName, string parentTableName, string childTableName, string[] parentColumnNames, string[] childColumnNames, bool nested )
public: DataRelation ( String^ relationName, String^ parentTableName, String^ childTableName, array<String^>^ parentColumnNames, array<String^>^ childColumnNames, bool nested )
public DataRelation ( String relationName, String parentTableName, String childTableName, String[] parentColumnNames, String[] childColumnNames, boolean nested )
public function DataRelation ( relationName : String, parentTableName : String, childTableName : String, parentColumnNames : String[], childColumnNames : String[], nested : boolean )

このコンストラクタを使用して作成した DataRelation オブジェクトは、AddRange を使用してコレクションに追加する必要があります。このメソッドを呼び出したときに、指定した名前のテーブルと列が存在している必要があります。このコンストラクタを呼び出す前に BeginInit を呼び出した場合は、EndInit を呼び出したときに、指定した名前のテーブルと列が存在している必要があります。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataRelation コンストラクタ (String, String, String, String, String, String[], String[], Boolean)
アセンブリ: System.Data (system.data.dll 内)

Public Sub New ( _ relationName As String, _ parentTableName As String, _ parentTableNamespace As String, _ childTableName As String, _ childTableNamespace As String, _ parentColumnNames As String(), _ childColumnNames As String(), _ nested As Boolean _ )
Dim relationName As String Dim parentTableName As String Dim parentTableNamespace As String Dim childTableName As String Dim childTableNamespace As String Dim parentColumnNames As String() Dim childColumnNames As String() Dim nested As Boolean Dim instance As New DataRelation(relationName, parentTableName, parentTableNamespace, childTableName, childTableNamespace, parentColumnNames, childColumnNames, nested)
public DataRelation ( string relationName, string parentTableName, string parentTableNamespace, string childTableName, string childTableNamespace, string[] parentColumnNames, string[] childColumnNames, bool nested )
public: DataRelation ( String^ relationName, String^ parentTableName, String^ parentTableNamespace, String^ childTableName, String^ childTableNamespace, array<String^>^ parentColumnNames, array<String^>^ childColumnNames, bool nested )
public DataRelation ( String relationName, String parentTableName, String parentTableNamespace, String childTableName, String childTableNamespace, String[] parentColumnNames, String[] childColumnNames, boolean nested )
public function DataRelation ( relationName : String, parentTableName : String, parentTableNamespace : String, childTableName : String, childTableNamespace : String, parentColumnNames : String[], childColumnNames : String[], nested : boolean )

このコンストラクタを使用して作成した DataRelation オブジェクトは、AddRange を使用してコレクションに追加する必要があります。このメソッドを呼び出したときに、指定した名前のテーブルと列が存在している必要があります。このコンストラクタを呼び出す前に BeginInit を呼び出した場合は、EndInit を呼び出したときに、指定した名前のテーブルと列が存在している必要があります。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataRelation コンストラクタ (String, DataColumn, DataColumn, Boolean)
アセンブリ: System.Data (system.data.dll 内)

Public Sub New ( _ relationName As String, _ parentColumn As DataColumn, _ childColumn As DataColumn, _ createConstraints As Boolean _ )
Dim relationName As String Dim parentColumn As DataColumn Dim childColumn As DataColumn Dim createConstraints As Boolean Dim instance As New DataRelation(relationName, parentColumn, childColumn, createConstraints)
public DataRelation ( string relationName, DataColumn parentColumn, DataColumn childColumn, bool createConstraints )
public: DataRelation ( String^ relationName, DataColumn^ parentColumn, DataColumn^ childColumn, bool createConstraints )
public DataRelation ( String relationName, DataColumn parentColumn, DataColumn childColumn, boolean createConstraints )
public function DataRelation ( relationName : String, parentColumn : DataColumn, childColumn : DataColumn, createConstraints : boolean )
- relationName
リレーションシップの名前。null 参照 (Visual Basic では Nothing) または空の文字列 ("") の場合は、作成したオブジェクトを DataRelationCollection に追加するときに既定の名前が使用されます。
- parentColumn
このリレーションシップの親 DataColumn。


新しい DataRelation を作成し、DataSet の DataRelationCollection に追加する例を次に示します。
Private Sub CreateRelation() ' Code to get the DataSet not shown here. ' Get the DataColumn objects from two DataTable ' objects in a DataSet. Dim parentColumn As DataColumn = DataSet1.Tables( _ "Customers").Columns("CustID") Dim childColumn As DataColumn = _ DataSet1.Tables("Orders").Columns("CustID") ' Create DataRelation. Dim bConstraints As Boolean = True Dim customerOrdersRelation As DataRelation = _ New DataRelation("CustomersOrders", _ parentColumn, childColumn, bConstraints) ' Add the relation to the DataSet. DataSet1.Relations.Add(customerOrdersRelation) End Sub

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataRelation コンストラクタ (String, DataColumn[], DataColumn[], Boolean)
アセンブリ: System.Data (system.data.dll 内)

Public Sub New ( _ relationName As String, _ parentColumns As DataColumn(), _ childColumns As DataColumn(), _ createConstraints As Boolean _ )
Dim relationName As String Dim parentColumns As DataColumn() Dim childColumns As DataColumn() Dim createConstraints As Boolean Dim instance As New DataRelation(relationName, parentColumns, childColumns, createConstraints)
public DataRelation ( string relationName, DataColumn[] parentColumns, DataColumn[] childColumns, bool createConstraints )
public: DataRelation ( String^ relationName, array<DataColumn^>^ parentColumns, array<DataColumn^>^ childColumns, bool createConstraints )
public DataRelation ( String relationName, DataColumn[] parentColumns, DataColumn[] childColumns, boolean createConstraints )
public function DataRelation ( relationName : String, parentColumns : DataColumn[], childColumns : DataColumn[], createConstraints : boolean )


新しい DataRelation を作成し、DataSet の DataRelationCollection に追加する例を次に示します。
Private Sub CreateRelation() ' Code to get the DataSet not shown here. ' Get the DataColumn objects from two DataTable ' objects in a DataSet. Dim parentColumns() As DataColumn Dim childColumns() As DataColumn parentColumns(0) = DataSet1.Tables( _ "Customers").Columns("CustID") parentColumns(1) = DataSet1.Tables( _ "Customers").Columns("OrdID") childColumns(0) = DataSet1.Tables( _ "Orders").Columns("CustID") childColumns(1) = DataSet1.Tables( _ "Orders").Columns("OrdID") Dim bConstraints As Boolean = True ' Create DataRelation. Dim CustOrderRel As DataRelation = New DataRelation( _ "CustomersOrders", parentColumns, childColumns, _ bConstraints) ' Add the relation to the DataSet. DataSet1.Relations.Add(CustOrderRel) End Sub

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataRelation コンストラクタ


DataRelation コンストラクタ (String, DataColumn[], DataColumn[])
アセンブリ: System.Data (system.data.dll 内)

Public Sub New ( _ relationName As String, _ parentColumns As DataColumn(), _ childColumns As DataColumn() _ )
Dim relationName As String Dim parentColumns As DataColumn() Dim childColumns As DataColumn() Dim instance As New DataRelation(relationName, parentColumns, childColumns)
public: DataRelation ( String^ relationName, array<DataColumn^>^ parentColumns, array<DataColumn^>^ childColumns )
public function DataRelation ( relationName : String, parentColumns : DataColumn[], childColumns : DataColumn[] )


新しい DataRelation を作成し、DataSet の DataRelationCollection に追加する例を次に示します。
Private Sub CreateRelation() ' Code to get the DataSet not shown here. ' Get the DataColumn objects from two DataTable ' objects in a DataSet. Dim parentColumns() As DataColumn Dim childColumns() As DataColumn parentColumns(0) = DataSet1.Tables( _ "Customers").Columns("CustID") parentColumns(1) = DataSet1.Tables( _ "Customers").Columns("OrdID") childColumns(0) = DataSet1.Tables( _ "Orders").Columns("CustID") childColumns(1) = DataSet1.Tables( _ "Orders").Columns("OrdID") ' Create DataRelation. Dim CustOrderRel As DataRelation = New DataRelation( _ "CustomersOrders", parentColumns, childColumns) ' Add the relation to the DataSet. DataSet1.Relations.Add(CustOrderRel) End Sub

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataRelation プロパティ


関連項目
DataRelation クラスSystem.Data 名前空間
ChildRelations
DataColumn クラス
DataSet
ForeignKeyConstraint
DataRelationCollection
UniqueConstraint
ParentRelations
DataRelation メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | オーバーライドされます。 RelationName が存在する場合は、このリレーションシップの名前を取得します。 |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
![]() | OnPropertyChanging | このメンバは .NET Framework インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 |
![]() | RaisePropertyChanging | このメンバは .NET Framework インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 |

関連項目
DataRelation クラスSystem.Data 名前空間
ChildRelations
DataColumn クラス
DataSet
ForeignKeyConstraint
DataRelationCollection
UniqueConstraint
ParentRelations
DataRelation メンバ
2 つの DataTable オブジェクト間の親子のリレーションシップを表します。
DataRelation データ型で公開されるメンバを以下の表に示します。



名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | オーバーライドされます。 RelationName が存在する場合は、このリレーションシップの名前を取得します。 |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
![]() | OnPropertyChanging | このメンバは .NET Framework インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 |
![]() | RaisePropertyChanging | このメンバは .NET Framework インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 |

関連項目
DataRelation クラスSystem.Data 名前空間
ChildRelations
DataColumn クラス
DataSet
ForeignKeyConstraint
DataRelationCollection
UniqueConstraint
ParentRelations
- DataRelationのページへのリンク