本文整理汇总了C#中System.Data.DataRelation.CheckState方法的典型用法代码示例。如果您正苦于以下问题:C# DataRelation.CheckState方法的具体用法?C# DataRelation.CheckState怎么用?C# DataRelation.CheckState使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.DataRelation
的用法示例。
在下文中一共展示了DataRelation.CheckState方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddCore
/// <devdoc>
/// Does verification on the table.
/// An ArgumentNullException is thrown if this relation is null. An ArgumentException is thrown if this relation
/// already belongs to this collection, belongs to another collection.
/// A DuplicateNameException is thrown if this collection already has a relation with the same
/// name (case insensitive).
/// </devdoc>
protected virtual void AddCore(DataRelation relation) {
Bid.Trace("<ds.DataRelationCollection.AddCore|INFO> %d#, relation=%d\n", ObjectID, (relation != null) ? relation.ObjectID : 0);
if (relation == null)
throw ExceptionBuilder.ArgumentNull("relation");
relation.CheckState();
DataSet dataSet = GetDataSet();
if (relation.DataSet == dataSet)
throw ExceptionBuilder.RelationAlreadyInTheDataSet();
if (relation.DataSet != null)
throw ExceptionBuilder.RelationAlreadyInOtherDataSet();
if (relation.ChildTable.Locale.LCID != relation.ParentTable.Locale.LCID ||
relation.ChildTable.CaseSensitive != relation.ParentTable.CaseSensitive)
throw ExceptionBuilder.CaseLocaleMismatch();
if (relation.Nested) {
relation.CheckNamespaceValidityForNestedRelations(relation.ParentTable.Namespace);
relation.ValidateMultipleNestedRelations();
relation.ParentTable.ElementColumnCount++;
}
}
示例2: AddCore
protected override void AddCore(DataRelation relation)
{
base.AddCore(relation);
if ((relation.ChildTable.DataSet != this.dataSet) || (relation.ParentTable.DataSet != this.dataSet))
{
throw ExceptionBuilder.ForeignRelation();
}
relation.CheckState();
if (relation.Nested)
{
relation.CheckNestedRelations();
}
if (relation.relationName.Length == 0)
{
relation.relationName = base.AssignName();
}
else
{
base.RegisterName(relation.relationName);
}
DataKey childKey = relation.ChildKey;
for (int i = 0; i < this.relations.Count; i++)
{
if (childKey.ColumnsEqual(((DataRelation) this.relations[i]).ChildKey) && relation.ParentKey.ColumnsEqual(((DataRelation) this.relations[i]).ParentKey))
{
throw ExceptionBuilder.RelationAlreadyExists();
}
}
this.relations.Add(relation);
((DataRelationCollection.DataTableRelationCollection) relation.ParentTable.ChildRelations).Add(relation);
((DataRelationCollection.DataTableRelationCollection) relation.ChildTable.ParentRelations).Add(relation);
relation.SetDataSet(this.dataSet);
relation.ChildKey.GetSortIndex().AddRef();
if (relation.Nested)
{
relation.ChildTable.CacheNestedParent();
}
ForeignKeyConstraint constraint = relation.ChildTable.Constraints.FindForeignKeyConstraint(relation.ParentColumnsReference, relation.ChildColumnsReference);
if (relation.createConstraints && (constraint == null))
{
relation.ChildTable.Constraints.Add(constraint = new ForeignKeyConstraint(relation.ParentColumnsReference, relation.ChildColumnsReference));
try
{
constraint.ConstraintName = relation.RelationName;
}
catch (Exception exception)
{
if (!ADP.IsCatchableExceptionType(exception))
{
throw;
}
ExceptionBuilder.TraceExceptionWithoutRethrow(exception);
}
}
UniqueConstraint constraint2 = relation.ParentTable.Constraints.FindKeyConstraint(relation.ParentColumnsReference);
relation.SetParentKeyConstraint(constraint2);
relation.SetChildKeyConstraint(constraint);
}