DataRelation 类

定义

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

public ref class DataRelation
[System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))]
public class DataRelation
public class DataRelation
[System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))]
[System.Serializable]
public class DataRelation
[<System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))>]
type DataRelation = class
type DataRelation = class
[<System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))>]
[<System.Serializable>]
type DataRelation = class
Public Class DataRelation
继承
DataRelation
属性

示例

以下示例创建一个新的 DataRelation ,并将其添加到 的 。DataRelationCollectionDataSet

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);
}
Private Sub CreateRelation()
    ' Get the DataColumn objects from two DataTable objects 
    ' in a DataSet. Code to get the DataSet not shown here.
    Dim parentColumn As DataColumn = _
        DataSet1.Tables("Customers").Columns("CustID")
    Dim childColumn As DataColumn = DataSet1.Tables( _
        "Orders").Columns("CustID")

    ' Create DataRelation.
    Dim relCustOrder As DataRelation
    relCustOrder = New DataRelation( _
        "CustomersOrders", parentColumn, childColumn)

    ' Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder)
End Sub

注解

DataRelation用于通过 DataColumn 对象将两个DataTable对象相互关联。 例如,在“客户/订单”关系中,“客户”表是父关系,“订单”表是该关系的子级。 这类似于主键/外键关系。 有关详细信息,请参阅 导航 DataRelations

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

关系还可以级联从父 DataRow 行到子行的各种更改。 若要控制如何更改子行中的值,请将 添加到 ForeignKeyConstraint 对象的 。ConstraintCollectionDataTable 确定 ConstraintCollection 删除或更新父表中的值时要采取的操作。

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

注意

如果在两个表之间定义了双向关系,则可能发生数据损坏。 双向关系由两 DataRelation 个对象组成,这些对象使用相同的列,并切换了父子角色。 保存对象时 DataRelation 不会引发异常;但是,可能会发生数据损坏。

DataRelation对象包含在 中DataRelationCollection,可以通过 的 DataSet属性以及 ChildRelationsDataTableParentRelations 属性进行访问Relations

构造函数

DataRelation(String, DataColumn, DataColumn)

使用指定的 DataRelation 名称、父级和子级 DataColumn 对象,初始化 DataRelation 类的新实例。

DataRelation(String, DataColumn, DataColumn, Boolean)

使用指定名称、父级和子级 DataColumn 对象以及指示是否创建约束的值,初始化 DataRelation 类的新实例。

DataRelation(String, DataColumn[], DataColumn[])

使用指定的 DataRelation 名称、父级和子级 DataColumn 对象的匹配数组,初始化 DataRelation 类的新实例。

DataRelation(String, DataColumn[], DataColumn[], Boolean)

使用指定的名称、父级和子级 DataColumn 对象的匹配数组以及指示是否创建约束的值,初始化 DataRelation 类的新实例。

DataRelation(String, String, String, String, String, String[], String[], Boolean)

此构造函数在 Visual Studio 环境中提供设计时支持。

DataRelation(String, String, String, String[], String[], Boolean)

此构造函数在 Visual Studio 环境中提供设计时支持。

属性

ChildColumns

获取此关系的子级 DataColumn 对象。

ChildKeyConstraint

获取关系的 ForeignKeyConstraint

ChildTable

获取此关系的子表。

DataSet

获取 DataRelation 所属的 DataSet

ExtendedProperties

获取存储自定义属性的集合。

Nested

获取或设置一个指示是否嵌套 DataRelation 对象的值。

ParentColumns

获取作为此 DataRelation 的父列的 DataColumn 对象的数组。

ParentKeyConstraint

获取 UniqueConstraint,它确保 DataRelation 的父列中的值是唯一的。

ParentTable

获取此 DataRelation 的父级 DataTable

RelationName

获取或设置用于从 DataRelationCollection 中检索 DataRelation 的名称。

方法

CheckStateForProperty()

此方法支持 .NET 基础结构,但不能在代码中直接使用。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnPropertyChanging(PropertyChangedEventArgs)

此成员支持 .NET 基础结构,但不能在代码中直接使用。

RaisePropertyChanging(String)

此成员支持 .NET 基础结构,但不能在代码中直接使用。

ToString()

获取 RelationName(如果存在)。

适用于

线程安全性

此类型对于多线程读取操作是安全的。 必须同步任何写入操作。

另请参阅