DataRelation Learning

表示两个 DataTable 对象之间的父/子关系。

使用 DataRelation 通过 DataColumn 对象将两个 DataTable 对象相互关联。

例如在“客户/订单”关系中,客户表是关系的父表,订单表是子表。此关系类似于主键/外键关系。有关更多信息,请参见 浏览表间关系

关系是在父表和子表中的匹配的列之间创建的。即,两个列的 DataType 值必须相同。

关系还可以将父级 DataRow 中的各种更改层叠到其子行。若要控制在子行中如何更改值,请将 ForeignKeyConstraint 添加到 DataTable 对象的ConstraintCollectionConstraintCollection 确定在删除或更新父表中的值时采取什么操作。

在创建 DataRelation 时,它首先验证是否可以建立关系。在将它添加到 DataRelationCollection 之后,通过禁止会使关系无效的任何更改来维持此关系。在创建 DataRelation 和将其添加到 DataRelationCollection 之间的这段时间,可以对父行或子行进行其他更改。如果这样会使关系不再有效,则会生成异常。

DataRelation 对象包含在 DataRelationCollection 中,后者可以通过 DataSet 的 Relations 属性、DataTable 的 ChildRelations 和 ParentRelations 属性来访问。

示例


下面的示例创建一个新的 DataRelation 并将其添加到 DataSet 的 DataRelationCollection 中。

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);
}


posted on 2010-12-09 15:52  xiaoxxy  阅读(566)  评论(0编辑  收藏  举报

导航