次の方法で共有


テーブル間のリレーションシップの追加

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

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

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

DataSet にある 2 つの DataTable オブジェクトを使用して、DataRelation を作成するコード例を次に示します。各 DataTable には、2 つの DataTable オブジェクト間のリンクとなる CustID という名前の列があります。例では、単一の DataRelation が DataSet の Relations コレクションに追加されます。例にある最初の引数には、作成する DataRelation の名前を指定します。2 番目の引数によって親の DataColumn が、3 番目の引数によって子の DataColumn が設定されます。

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

DataRelation には、入れ子になったプロパティもあります。true に設定すると、WriteXml を使用して XML 要素として書き込むときにそのプロパティによって、子テーブルの行が関連付けられた親テーブルの行に入れ子にされます。詳細については、「XML と DataSet」を参照してください。

参照

DataSet の作成および使用 | DataColumn クラス | DataRelation クラス | DataRelationCollection クラス | DataSet クラス | DataTable クラス