DataRelation の追加Adding DataRelations

複数の DataSet オブジェクトを含む DataTable では、DataRelation オブジェクトを使用して 1 つのテーブルを別のテーブルに関連付けたり、テーブル間を移動したり、関連付けたテーブルから子または親の行を戻したりできます。In a DataSet with multiple DataTable objects, you can use DataRelation objects to relate one table to another, to navigate through the tables, and to return child or parent rows from a related table.

Datarelationを作成するために必要な引数は、作成するdatarelationの名前と、リレーションシップの親列およびDataColumn子列として機能する列への1つ以上の参照の配列です。The arguments required to create a DataRelation are a name for the DataRelation being created, and an array of one or more DataColumn references to the columns that serve as the parent and child columns in the relationship. DataRelationを作成したら、それを使用してテーブル間を移動したり、値を取得したりできます。After you have created a DataRelation, you can use it to navigate between tables and to retrieve values.

UniqueConstraint ForeignKeyConstraintDataSet DataRelationを追加すると、既定では、親テーブルへの、および子テーブルへのが追加されます。Adding a DataRelation to a DataSet adds, by default, a UniqueConstraint to the parent table and a ForeignKeyConstraint to the child table. これらの既定の制約の詳細については、「 DataTable の制約」を参照してください。For more information about these default constraints, see DataTable Constraints.

次のコード例では、 DataSetで 2 DataTableつのオブジェクトを使用してDataRelationを作成します。The following code example creates a DataRelation using two DataTable objects in a DataSet. DataTableには、2つDataTableのオブジェクト間のリンクとして機能する CustID という名前の列が含まれています。Each DataTable contains a column named CustID, which serves as a link between the two DataTable objects. この例では、 DataSetリレーションコレクションに単一のDataRelationを追加します。The example adds a single DataRelation to the Relations collection of the DataSet. この例の最初の引数では、作成するDataRelationの名前を指定します。The first argument in the example specifies the name of the DataRelation being created. 2番目の引数は親datacolumnを設定し、3番目の引数は子datacolumnを設定します。The second argument sets the parent DataColumn and the third argument sets the child DataColumn.

customerOrders.Relations.Add("CustOrders", _  
  customerOrders.Tables("Customers").Columns("CustID"), _  
  customerOrders.Tables("Orders").Columns("CustID"))  
customerOrders.Relations.Add("CustOrders",  
  customerOrders.Tables["Customers"].Columns["CustID"],  
  customerOrders.Tables["Orders"].Columns["CustID"]);  

DataRelationには、入れ子になったプロパティもあります。 trueに設定すると、を使用WriteXmlして XML 要素として書き込まれるときに、子テーブルの行が親テーブルの関連付けられた行に入れ子になります。A DataRelation also has a Nested property which, when set to true, causes the rows from the child table to be nested within the associated row from the parent table when written as XML elements using WriteXml . 詳しくは、「DataSet での XML の使用」を参照してください。For more information, see Using XML in a DataSet.

関連項目See also