在具有多个DataSet对象的一个DataTable对象中,可以使用DataRelation对象将一个表关联到另一个表、浏览表以及从相关表中返回子行或父行。
创建 DataRelation 所需的参数是为正在创建的 DataRelation 提供的名称,以及一个或多个 DataColumn 引用数组,这些引用用作该关系中的父列和子列。 创建 DataRelation 后,可以使用它在表之间导航和检索值。
默认情况下,将DataRelation添加到DataSet时,会自动在父表中添加UniqueConstraint,并在子表中添加ForeignKeyConstraint。 有关这些默认约束的详细信息,请参阅 DataTable 约束。
下面的代码示例通过在一个DataSet中使用两个DataTable对象来创建一个DataRelation。 每个 DataTable 列都包含一个名为 CustID 的列,该列充当两 DataTable 个对象之间的链接。 该示例向 DataSet 的 Relations 集合中添加一个 DataRelation。 示例中的第一个参数指定所创建的名称 DataRelation 。 第二个参数设置父 DataColumn 参数,第三个参数设置子 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 还具有 Nested 属性,当该属性设置为 true 时,子表中的行会在作为 XML 元素使用 WriteXml 写入时嵌套在父表中相关联的行内。 有关详细信息,请参阅 在数据集中使用 XML。