System.Data 命名空间


.NET Framework 类库
DataRelation 类

更新:2007 年 11 月

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

命名空间:  System.Data
程序集:  System.Data(在 System.Data.dll 中)
语法

Visual Basic(声明)
Public Class DataRelation
Visual Basic (用法)
Dim instance As DataRelation
C#
public class DataRelation
Visual C++
public ref class DataRelation
J#
public class DataRelation
JScript
public class DataRelation
备注

使用 DataRelation 通过 DataColumn 对象将两个 DataTable 对象相互关联。例如在“客户/订单”关系中,客户表是关系的父表,订单表是子表。此关系类似于主键/外键关系。有关更多信息,请参见导航 DataRelation (ADO.NET)

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

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

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

dz0az7c7.alert_note(zh-cn,VS.90).gif说明:

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

DataRelation 对象包含在 DataRelationCollection 中,后者可以通过 DataSetRelations 属性、DataTableChildRelationsParentRelations 属性来访问。

示例

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

Visual Basic
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
C#
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);
}
继承层次结构

System..::.Object
  System.Data..::.DataRelation
线程安全

该类型对于多线程读操作是安全的。您必须使任何写操作同步。

平台

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求
版本信息

.NET Framework

受以下版本支持:3.5、3.0、2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:3.5、2.0、1.0

XNA Framework

受以下版本支持:1.0
另请参见

参考

标记 :


Page view tracker