通过


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 项并将其添加到 DataRelationCollection a DataSet.

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

注解

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

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

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

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

注释

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

DataRelation对象包含在一个DataRelationCollection对象中,可以通过对象的DataSet属性和ChildRelationsParentRelationsDataTable属性进行访问。Relations

构造函数

名称 说明
DataRelation(String, DataColumn, DataColumn, Boolean)

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

DataRelation(String, DataColumn, DataColumn)

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

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

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

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

使用指定的DataRelation名称和匹配的父对象和子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

DataSet获取所属的所在位置DataRelation

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个 ,如果存在。

适用于

线程安全性

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

另请参阅