Share via


DataRelation の追加 (ADO.NET)

更新 : November 2007

複数の DataTable オブジェクトを含む DataSet では、DataRelation オブジェクトを使用して 1 つのテーブルを別のテーブルに関連付けたり、テーブル間を移動したり、関連付けたテーブルから子または親の行を戻したりできます。

DataRelation の作成に必要な引数は、作成する DataRelation の名前、およびそのリレーションシップで親子の列となる列への 1 つ以上の DataColumn 参照の配列です。DataRelation の作成後、DataRelation を使用してテーブル間の移動および値の取得を行うことができます。

DataSet への DataRelation の追加は、既定では UniqueConstraint が親テーブルに、ForeignKeyConstraint が子テーブルに追加されます。上記の既定の制約の詳細については、「DataTable の制約 (ADO.NET)」を参照してください。

DataSet にある 2 つの DataTable オブジェクトを使用して、DataRelation を作成するコード サンプルを次に示します。各 DataTable には、2 つの DataTable オブジェクト間のリンクとなる CustID という名前の列があります。例では、単一の DataRelationDataSetRelations コレクションに追加されます。例にある最初の引数には、作成する DataRelation の名前を指定します。2 番目の引数によって親の DataColumn が、3 番目の引数によって子の 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 要素として書き込むときに、親テーブルの関連付けられた行の中で子テーブルの行が入れ子になります。詳細については、「DataSet での XML の使用 (ADO.NET)」を参照してください。

参照

その他の技術情報

DataSets、DataTables、および DataViews (ADO.NET)