DataRelationとは? わかりやすく解説

DataRelation クラス

2 つの DataTable オブジェクト間の親子のリレーションシップを表します。

名前空間: System.Data
アセンブリ: System.Data (system.data.dll 内)
構文構文

public class DataRelation
public ref class DataRelation
public class DataRelation
public class DataRelation
解説解説

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.Object
  System.Data.DataRelation
スレッド セーフスレッド セーフ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataRelation メンバ
System.Data 名前空間
ChildRelations
DataColumn クラス
DataSet
ForeignKeyConstraint
DataRelationCollection
UniqueConstraint
ParentRelations

DataRelation コンストラクタ (String, DataColumn, DataColumn)

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

名前空間: System.Data
アセンブリ: 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 DataRelation (
    string relationName,
    DataColumn parentColumn,
    DataColumn childColumn
)
public:
DataRelation (
    String^ relationName, 
    DataColumn^ parentColumn, 
    DataColumn^ childColumn
)
public DataRelation (
    String relationName, 
    DataColumn parentColumn, 
    DataColumn childColumn
)
public function DataRelation (
    relationName : String, 
    parentColumn : DataColumn, 
    childColumn : DataColumn
)

パラメータ

relationName

DataRelation の名前。null 参照 (Visual Basic では Nothing) または空の文字列 ("") の場合は、作成したオブジェクトを DataRelationCollection に追加するときに既定の名前が使用されます。

parentColumn

このリレーションシップの親 DataColumn。

childColumn

このリレーションシップの子 DataColumn。

例外例外
例外の種類条件

ArgumentNullException

DataColumn オブジェクトの一方または両方が null 参照 (Visual Basic では Nothing) を格納しています。

InvalidConstraintException

列のデータ型が異なります。

または

テーブルが同じ DataSet に属していません。

使用例使用例

新しい 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);
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataRelation クラス
DataRelation メンバ
System.Data 名前空間
DataColumn クラス
RelationName

DataRelation コンストラクタ (String, String, String, String[], String[], Boolean)

このコンストラクタは、Visual Studio 環境でのデザイン時のサポートのために用意されています。

名前空間: System.Data
アセンブリ: 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
)

パラメータ

relationName

リレーションシップの名前。null 参照 (Visual Basic では Nothing) または空の文字列 ("") の場合は、作成したオブジェクトを DataRelationCollection に追加するときに既定の名前が使用されます。

parentTableName

このリレーションシップの親テーブルである DataTable の名前。

childTableName

このリレーションシップの子テーブルである DataTable の名前。

parentColumnNames

このリレーションシップの親 DataTable 内の DataColumn オブジェクト名の配列。

childColumnNames

このリレーションシップの子 DataTable 内の DataColumn オブジェクト名の配列。

nested

リレーションシップを入れ子にするかどうかを示す値。

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

DataRelation コンストラクタ (String, String, String, String, String, String[], String[], Boolean)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

このコンストラクタは、Visual Studio 環境でのデザイン時のサポートのために用意されています。

名前空間: System.Data
アセンブリ: 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
)

パラメータ

relationName

DataRelation の名前。null 参照 (Visual Basic では Nothing) または空の文字列 ("") の場合は、作成したオブジェクトを DataRelationCollection に追加するときに既定の名前が使用されます。

parentTableName

このリレーションシップの親テーブルである DataTable の名前。

parentTableNamespace

親テーブルの名前空間の名前。

childTableName

このリレーションシップの子テーブルである DataTable の名前。

childTableNamespace

子テーブルの名前空間の名前。

parentColumnNames

このリレーションシップの親 DataTable 内の DataColumn オブジェクト名の配列。

childColumnNames

このリレーションシップの子 DataTable 内の DataColumn オブジェクト名の配列。

nested

リレーションシップを入れ子にするかどうかを示す値。

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

DataRelation コンストラクタ (String, DataColumn, DataColumn, Boolean)

名前、親と子の DataColumn オブジェクト、および制約を作成するかどうかを示す値を指定して、DataRelation クラスの新しいインスタンスを初期化します。

名前空間: System.Data
アセンブリ: 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。

childColumn

このリレーションシップの子 DataColumn。

createConstraints

制約を作成するかどうかを示す値。制約を作成する場合は true。それ以外の場合は false。

例外例外
例外の種類条件

ArgumentNullException

DataColumn オブジェクトの一方または両方が null 参照 (Visual Basic では Nothing) を格納しています。

InvalidConstraintException

列のデータ型が異なります。

または

テーブルが同じ DataSet に属していません。

使用例使用例

新しい 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
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataRelation クラス
DataRelation メンバ
System.Data 名前空間
DataColumn クラス
ForeignKeyConstraint
RelationName

DataRelation コンストラクタ (String, DataColumn[], DataColumn[], Boolean)

名前、親と子で一致した DataColumn オブジェクトの配列、および制約を作成するかどうかを示す値を指定して、DataRelation クラスの新しいインスタンスを初期化します。

名前空間: System.Data
アセンブリ: 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
)

パラメータ

relationName

リレーションシップの名前。null 参照 (Visual Basic では Nothing) または空の文字列 ("") の場合は、作成したオブジェクトを DataRelationCollection に追加するときに既定の名前が使用されます。

parentColumns

親 DataColumn オブジェクトの配列。

childColumns

子 DataColumn オブジェクトの配列。

createConstraints

制約を作成するかどうかを示す値。制約を作成する場合は true。それ以外の場合は false。

例外例外
例外の種類条件

ArgumentNullException

DataColumn オブジェクトの一方または両方が null 参照 (Visual Basic では Nothing) です。

InvalidConstraintException

列のデータ型が異なります。

または

テーブルが同じ DataSet に属していません。

使用例使用例

新しい 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
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataRelation クラス
DataRelation メンバ
System.Data 名前空間
DataColumn クラス
ForeignKeyConstraint
RelationName

DataRelation コンストラクタ

DataRelation クラスの新しいインスタンスを初期化します。
オーバーロードの一覧オーバーロードの一覧

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

.NET Compact Framework によってサポートされています。

DataRelation (String, DataColumn[], DataColumn[]) DataRelation 名、および親と子で一致した DataColumn オブジェクトの配列を指定して、DataRelation クラスの新しいインスタンスを初期化します。

.NET Compact Framework によってサポートされています。

DataRelation (String, DataColumn, DataColumn, Boolean) 名前、親と子の DataColumn オブジェクト、および制約を作成するかどうかを示す値を指定して、DataRelation クラスの新しいインスタンスを初期化します。

.NET Compact Framework によってサポートされています。

DataRelation (String, DataColumn[], DataColumn[], Boolean) 名前、親と子で一致した DataColumn オブジェクトの配列、および制約を作成するかどうかを示す値を指定して、DataRelation クラスの新しいインスタンスを初期化します。

.NET Compact Framework によってサポートされています。

DataRelation (String, String, String, String[], String[], Boolean) このコンストラクタは、Visual Studio 環境でのデザイン時のサポートのために用意されています。

.NET Compact Framework によってサポートされています。

DataRelation (String, String, String, String, String, String[], String[], Boolean) このコンストラクタは、Visual Studio 環境でのデザイン時のサポートのために用意されています。
参照参照

関連項目

DataRelation クラス
DataRelation メンバ
System.Data 名前空間
DataColumn クラス
RelationName

DataRelation コンストラクタ (String, DataColumn[], DataColumn[])

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

名前空間: System.Data
アセンブリ: 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,
    DataColumn[] parentColumns,
    DataColumn[] childColumns
)
public:
DataRelation (
    String^ relationName, 
    array<DataColumn^>^ parentColumns, 
    array<DataColumn^>^ childColumns
)
public DataRelation (
    String relationName, 
    DataColumn[] parentColumns, 
    DataColumn[] childColumns
)
public function DataRelation (
    relationName : String, 
    parentColumns : DataColumn[], 
    childColumns : DataColumn[]
)

パラメータ

relationName

リレーションシップの名前。null 参照 (Visual Basic では Nothing) または空の文字列 ("") の場合は、作成したオブジェクトを DataRelationCollection に追加するときに既定の名前が使用されます。

parentColumns

親 DataColumn オブジェクトの配列。

childColumns

子 DataColumn オブジェクトの配列。

例外例外
例外の種類条件

ArgumentNullException

DataColumn オブジェクトの一方または両方が null 参照 (Visual Basic では Nothing) を格納しています。

InvalidConstraintException

DataColumn オブジェクトのデータ型が異なります。

または

配列の一方または両方が、同じテーブルの異なる列で構成されていません。

または

テーブルが同じ DataSet に属していません。

使用例使用例

新しい 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
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataRelation クラス
DataRelation メンバ
System.Data 名前空間
DataColumn クラス
ForeignKeyConstraint
RelationName

DataRelation プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ RelationName DataRelationCollection から DataRelation を取得する名前を取得または設定します。
参照参照

関連項目

DataRelation クラス
System.Data 名前空間
ChildRelations
DataColumn クラス
DataSet
ForeignKeyConstraint
DataRelationCollection
UniqueConstraint
ParentRelations

DataRelation メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

DataRelation クラス
System.Data 名前空間
ChildRelations
DataColumn クラス
DataSet
ForeignKeyConstraint
DataRelationCollection
UniqueConstraint
ParentRelations

DataRelation メンバ

2 つの DataTable オブジェクト間の親子のリレーションシップを表します。

DataRelation データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ RelationName DataRelationCollection から DataRelation を取得する名前を取得または設定します。
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

DataRelation クラス
System.Data 名前空間
ChildRelations
DataColumn クラス
DataSet
ForeignKeyConstraint
DataRelationCollection
UniqueConstraint
ParentRelations



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「DataRelation」の関連用語

DataRelationのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DataRelationのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS