Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / Constraint.cs / 1305376 / Constraint.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
// [....]
//-----------------------------------------------------------------------------
namespace System.Data {
using System;
using System.ComponentModel;
using System.Globalization;
///
/// Represents a constraint that can be enforced on one or
/// more objects.
///
[
DefaultProperty("ConstraintName"),
TypeConverter(typeof(ConstraintConverter))
]
public abstract class Constraint {
internal String name = "";
private String _schemaName = "";
private bool inCollection = false;
private DataSet dataSet = null;
internal PropertyCollection extendedProperties = null;
///
/// The name of this constraint within the
/// .
///
[
DefaultValue(""),
ResDescriptionAttribute(Res.ConstraintNameDescr),
ResCategoryAttribute(Res.DataCategory_Data)
]
public virtual string ConstraintName {
get {
return name;
}
set {
if (value == null)
value = "";
if (Common.ADP.IsEmpty(value) && (Table != null) && InCollection)
throw ExceptionBuilder.NoConstraintName();
CultureInfo locale = (Table != null ? Table.Locale : CultureInfo.CurrentCulture);
if (String.Compare(name, value, true, locale) != 0) {
if ((Table != null) && InCollection) {
Table.Constraints.RegisterName(value);
if (name.Length != 0)
Table.Constraints.UnregisterName(name);
}
name = value;
}
else if (String.Compare(name, value, false, locale) != 0) {
name = value;
}
}
}
internal String SchemaName {
get {
if (Common.ADP.IsEmpty(_schemaName))
return ConstraintName;
else
return _schemaName;
}
set {
if (!Common.ADP.IsEmpty(value))
_schemaName = value;
}
}
internal virtual bool InCollection {
get { // ACCESSOR: virtual was missing from this get
return inCollection;
}
set {
inCollection = value;
if (value)
dataSet = Table.DataSet;
else
dataSet = null;
}
}
///
/// Gets the to which the constraint applies.
///
[ResDescriptionAttribute(Res.ConstraintTableDescr)]
public abstract DataTable Table {
get;
}
///
/// Gets the collection of customized user information.
///
[
ResCategoryAttribute(Res.DataCategory_Data),
Browsable(false),
ResDescriptionAttribute(Res.ExtendedPropertiesDescr)
]
public PropertyCollection ExtendedProperties {
get {
if (extendedProperties == null) {
extendedProperties = new PropertyCollection();
}
return extendedProperties;
}
}
internal abstract bool ContainsColumn(DataColumn column);
internal abstract bool CanEnableConstraint();
internal abstract Constraint Clone(DataSet destination);
internal abstract Constraint Clone(DataSet destination, bool ignoreNSforTableLookup);
internal void CheckConstraint() {
if (!CanEnableConstraint()) {
throw ExceptionBuilder.ConstraintViolation(ConstraintName);
}
}
internal abstract void CheckCanAddToCollection(ConstraintCollection constraint);
internal abstract bool CanBeRemovedFromCollection(ConstraintCollection constraint, bool fThrowException);
internal abstract void CheckConstraint(DataRow row, DataRowAction action);
internal abstract void CheckState();
protected void CheckStateForProperty() {
try {
CheckState();
}
catch (Exception e) {
//
if (!Common.ADP.IsCatchableExceptionType (e)) {
throw;
}
throw ExceptionBuilder.BadObjectPropertyAccess(e.Message);
}
}
///
/// Gets the to which this constraint belongs.
///
[CLSCompliant(false)]
protected virtual DataSet _DataSet {
get {
return dataSet;
}
}
///
/// Sets the constraint's .
///
protected internal void SetDataSet(DataSet dataSet) {
this.dataSet = dataSet;
}
internal abstract bool IsConstraintViolated();
public override string ToString() {
return ConstraintName;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
// [....]
//-----------------------------------------------------------------------------
namespace System.Data {
using System;
using System.ComponentModel;
using System.Globalization;
///
/// Represents a constraint that can be enforced on one or
/// more objects.
///
[
DefaultProperty("ConstraintName"),
TypeConverter(typeof(ConstraintConverter))
]
public abstract class Constraint {
internal String name = "";
private String _schemaName = "";
private bool inCollection = false;
private DataSet dataSet = null;
internal PropertyCollection extendedProperties = null;
///
/// The name of this constraint within the
/// .
///
[
DefaultValue(""),
ResDescriptionAttribute(Res.ConstraintNameDescr),
ResCategoryAttribute(Res.DataCategory_Data)
]
public virtual string ConstraintName {
get {
return name;
}
set {
if (value == null)
value = "";
if (Common.ADP.IsEmpty(value) && (Table != null) && InCollection)
throw ExceptionBuilder.NoConstraintName();
CultureInfo locale = (Table != null ? Table.Locale : CultureInfo.CurrentCulture);
if (String.Compare(name, value, true, locale) != 0) {
if ((Table != null) && InCollection) {
Table.Constraints.RegisterName(value);
if (name.Length != 0)
Table.Constraints.UnregisterName(name);
}
name = value;
}
else if (String.Compare(name, value, false, locale) != 0) {
name = value;
}
}
}
internal String SchemaName {
get {
if (Common.ADP.IsEmpty(_schemaName))
return ConstraintName;
else
return _schemaName;
}
set {
if (!Common.ADP.IsEmpty(value))
_schemaName = value;
}
}
internal virtual bool InCollection {
get { // ACCESSOR: virtual was missing from this get
return inCollection;
}
set {
inCollection = value;
if (value)
dataSet = Table.DataSet;
else
dataSet = null;
}
}
///
/// Gets the to which the constraint applies.
///
[ResDescriptionAttribute(Res.ConstraintTableDescr)]
public abstract DataTable Table {
get;
}
///
/// Gets the collection of customized user information.
///
[
ResCategoryAttribute(Res.DataCategory_Data),
Browsable(false),
ResDescriptionAttribute(Res.ExtendedPropertiesDescr)
]
public PropertyCollection ExtendedProperties {
get {
if (extendedProperties == null) {
extendedProperties = new PropertyCollection();
}
return extendedProperties;
}
}
internal abstract bool ContainsColumn(DataColumn column);
internal abstract bool CanEnableConstraint();
internal abstract Constraint Clone(DataSet destination);
internal abstract Constraint Clone(DataSet destination, bool ignoreNSforTableLookup);
internal void CheckConstraint() {
if (!CanEnableConstraint()) {
throw ExceptionBuilder.ConstraintViolation(ConstraintName);
}
}
internal abstract void CheckCanAddToCollection(ConstraintCollection constraint);
internal abstract bool CanBeRemovedFromCollection(ConstraintCollection constraint, bool fThrowException);
internal abstract void CheckConstraint(DataRow row, DataRowAction action);
internal abstract void CheckState();
protected void CheckStateForProperty() {
try {
CheckState();
}
catch (Exception e) {
//
if (!Common.ADP.IsCatchableExceptionType (e)) {
throw;
}
throw ExceptionBuilder.BadObjectPropertyAccess(e.Message);
}
}
///
/// Gets the to which this constraint belongs.
///
[CLSCompliant(false)]
protected virtual DataSet _DataSet {
get {
return dataSet;
}
}
///
/// Sets the constraint's .
///
protected internal void SetDataSet(DataSet dataSet) {
this.dataSet = dataSet;
}
internal abstract bool IsConstraintViolated();
public override string ToString() {
return ConstraintName;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CompilationUtil.cs
- MetadataHelper.cs
- TemplatedAdorner.cs
- DirectionalLight.cs
- TdsParserSafeHandles.cs
- DesignerSerializerAttribute.cs
- Container.cs
- DbProviderServices.cs
- CollectionViewGroup.cs
- FrameAutomationPeer.cs
- EventLogQuery.cs
- UnionExpr.cs
- RequestQueue.cs
- Baml2006KnownTypes.cs
- DragDropHelper.cs
- Component.cs
- CompositeDispatchFormatter.cs
- IntSecurity.cs
- BitStack.cs
- StringUtil.cs
- ReferencedAssembly.cs
- xdrvalidator.cs
- AutoSizeComboBox.cs
- EasingFunctionBase.cs
- InputLanguageCollection.cs
- DuplicateWaitObjectException.cs
- TypeUtil.cs
- DataGridColumnFloatingHeader.cs
- XmlNamespaceManager.cs
- FtpWebRequest.cs
- SystemResourceHost.cs
- UserMapPath.cs
- Screen.cs
- RepeatInfo.cs
- HyperLink.cs
- RuntimeHandles.cs
- ThemeDirectoryCompiler.cs
- MessageDecoder.cs
- CustomError.cs
- XMLDiffLoader.cs
- EffectiveValueEntry.cs
- _ScatterGatherBuffers.cs
- ValidatorUtils.cs
- ReflectionPermission.cs
- NumberFormatter.cs
- Logging.cs
- TitleStyle.cs
- StylusPlugin.cs
- DataColumnCollection.cs
- TextElementEnumerator.cs
- NavigationCommands.cs
- DoubleAnimationUsingPath.cs
- ToolStripRendererSwitcher.cs
- DataBinder.cs
- StateMachineWorkflowInstance.cs
- ProgressChangedEventArgs.cs
- COM2TypeInfoProcessor.cs
- WebBrowser.cs
- ServiceDesigner.cs
- InstanceContext.cs
- ProjectionCamera.cs
- ControlCollection.cs
- EventDescriptor.cs
- SQLDateTimeStorage.cs
- RawStylusInputCustomDataList.cs
- WeakReferenceKey.cs
- AutomationIdentifierGuids.cs
- CheckBox.cs
- Highlights.cs
- TableLayoutSettingsTypeConverter.cs
- EventLogSession.cs
- VectorConverter.cs
- PromptBuilder.cs
- DeflateStream.cs
- DataGridViewRowCollection.cs
- InstallerTypeAttribute.cs
- TableItemProviderWrapper.cs
- ArrangedElement.cs
- HeaderedItemsControl.cs
- StylusPoint.cs
- InputLanguageEventArgs.cs
- DataGridViewCellStyleChangedEventArgs.cs
- SmtpNegotiateAuthenticationModule.cs
- ClientType.cs
- CheckBox.cs
- TableLayoutStyleCollection.cs
- FixUp.cs
- Vector3DAnimationBase.cs
- DynamicQueryableWrapper.cs
- Soap.cs
- ProxyWebPartManager.cs
- ItemList.cs
- MemoryMappedView.cs
- DataControlFieldCollection.cs
- CommonRemoteMemoryBlock.cs
- ScrollViewer.cs
- InternalRelationshipCollection.cs
- GeneralTransform3DTo2D.cs
- IgnoreFlushAndCloseStream.cs
- CommandField.cs