作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。
个人主页:会敲键盘的肘子
系列专栏:.Net实用方法总结
专栏简介:博主针对.Net开发和C站问答过程中遇到的问题进行总结,形成本专栏,希望可以帮助到您解决问题。
座右铭:总有一天你所坚持的会反过来拥抱你。
写在前面:
本文主要介绍System.Data命名空间的 DataRelation 类,介绍其常用的方法和实践。
本文关键字:System.Data、DataRelation类、DataTable类、方法实践、C#
提供对表示 ADO.NET 体系结构的类的访问权限。 通过 ADO.NET,可以生成可有效管理多个数据源的数据的组件。
表示两个 DataTable 对象之间的父/子关系。
[System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))]
public class DataRelation
示例
以下示例创建一个新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);
}
使用指定的 DataRelation 名称、父级和子级 DataColumn 对象,初始化 DataRelation 类的新实例。
public DataRelation (string? relationName, System.Data.DataColumn parentColumn, System.Data.DataColumn childColumn);
参数
relationName
String
DataRelation 的名称。 如果为
null
或空字符串 (“”),则当创建的对象添加到 DataRelationCollection 时,将提供一个默认名称。
parentColumn
DataColumn
关系中的父级 DataColumn。
childColumn
DataColumn
关系中的子级 DataColumn。
示例
以下示例创建一个新DataRelation值并将其添加到 DataSet中DataRelationCollection。
private void CreateRelation()
{
// Code to get the DataSet not shown here.
// Get the DataColumn objects from two DataTable
// objects in a DataSet.
DataColumn[] parentCols = new DataColumn[]
{DataSet1.Tables["Customers"].Columns["CustID"],
DataSet1.Tables["Customers"].Columns["OrdID"]};
DataColumn[] childCols= new DataColumn[]
{DataSet1.Tables["Orders"].Columns["CustID"],
DataSet1.Tables["Orders"].Columns["OrdID"]};
// Create DataRelation.
DataRelation CustOrderRel = new DataRelation(
"CustomersOrders", parentCols, childCols);
// Add the relation to the DataSet.
DataSet1.Relations.Add(CustOrderRel);
}
使用指定的 DataRelation 名称、父级和子级 DataColumn 对象的匹配数组,初始化 DataRelation 类的新实例。
public DataRelation (string? relationName, System.Data.DataColumn[] parentColumns, System.Data.DataColumn[] childColumns);
参数
relationName
String
DataRelation 的名称。 如果为
null
或空字符串 (“”),则当创建的对象添加到 DataRelationCollection 时,将提供一个默认名称。
parentColumn
DataColumn[]
父级 DataColumn 对象的数组。
childColumn
DataColumn[]
子级 DataColumn 对象的数组。
获取此关系的子级 DataColumn 对象。
public virtual System.Data.DataColumn[] ChildColumns { get; }
获取作为此 DataRelation 的父列的 DataColumn 对象的数组。
public virtual System.Data.DataColumn[] ParentColumns { get; }
获取或设置用于从 DataRelationCollection 中检索 DataRelation 的名称。
public virtual string RelationName { get; set; }
DataRelation 用于通过DataColumn对象相互关联两个DataTable对象。 例如,在 Customer/Orders 关系中,Customers 表是父表,Orders 表是关系的子级。 这类似于主键/外键关系。 有关详细信息,请参阅 导航 DataRelations。
在父表和子表中的匹配列之间创建关系。 也就是说, DataType 这两列的值必须相同。
关系还可以级联从父 DataRow 行到子行的各种更改。 若要控制子行中的值更改方式,请向ConstraintCollectionDataTable对象添加一个ForeignKeyConstraint值。 确定 ConstraintCollection 删除或更新父表中的值时要执行的操作。
更多方法请查阅官方文档DataRelation类。
⭐写在结尾:
文章中出现的任何错误请大家批评指出,一定及时修改。
希望写在这里的小伙伴能给个三连支持!