Constraint Constraint Constraint Constraint Class

Определение

Представляет ограничение, которое может быть применено к одному или более объектам DataColumn.Represents a constraint that can be enforced on one or more DataColumn objects.

public ref class Constraint abstract
[System.ComponentModel.TypeConverter(typeof(System.Data.ConstraintConverter))]
[System.Serializable]
public abstract class Constraint
type Constraint = class
Public MustInherit Class Constraint
Наследование
ConstraintConstraintConstraintConstraint
Производный
Атрибуты

Примеры

В следующем примере проверяется Коллекция ограничений для DataTable и определяется, UniqueConstraint является ли каждое ограничение или ForeignKeyConstraint.The following example examines the collection of constraints for a DataTable and determines whether each constraint is a UniqueConstraint or a ForeignKeyConstraint. Затем отображаются свойства ограничения.The properties of the constraint are then displayed.

private void GetConstraints(DataTable dataTable)
{
    Console.WriteLine();

    // Print the table's name.
    Console.WriteLine("TableName: " + dataTable.TableName);

    // Iterate through the collection and 
    // print each name and type value.
    foreach(Constraint constraint in dataTable.Constraints ) 
    {
        Console.WriteLine("Constraint Name: " 
            + constraint.ConstraintName);
        Console.WriteLine("Type: " 
            + constraint.GetType().ToString());

        // If the constraint is a UniqueConstraint, 
        // print its properties using a function below.
        if(constraint is UniqueConstraint) 
        {
            PrintUniqueConstraintProperties(constraint);
        }
        // If the constraint is a ForeignKeyConstraint, 
        // print its properties using a function below.
        if(constraint is ForeignKeyConstraint) 
        {
            PrintForeigKeyConstraintProperties(constraint);
        }
    }
}

private void PrintUniqueConstraintProperties(
    Constraint constraint)
{
    UniqueConstraint uniqueConstraint;
    uniqueConstraint = (UniqueConstraint) constraint;

    // Get the Columns as an array.
    DataColumn[] columnArray;
    columnArray = uniqueConstraint.Columns;

    // Print each column's name.
    for(int i = 0;i<columnArray.Length ;i++) 
    {
        Console.WriteLine("Column Name: " 
            + columnArray[i].ColumnName);
    }
}

private void PrintForeigKeyConstraintProperties(
    Constraint constraint)
{
    ForeignKeyConstraint fkConstraint;
    fkConstraint = (ForeignKeyConstraint) constraint;

    // Get the Columns as an array.
    DataColumn[] columnArray;
    columnArray = fkConstraint.Columns;

    // Print each column's name.
    for(int i = 0;i<columnArray.Length ;i++) 
    {
        Console.WriteLine("Column Name: " 
            + columnArray[i].ColumnName);
    }
    Console.WriteLine();

    // Get the related columns and print each columns name.
    columnArray = fkConstraint.RelatedColumns ;
    for(int i = 0;i<columnArray.Length ;i++) 
    {
        Console.WriteLine("Related Column Name: " 
            + columnArray[i].ColumnName);
    }
    Console.WriteLine();
}
Private Sub GetConstraints(dataTable As DataTable)
    Console.WriteLine()

    ' Print the table's name.
    Console.WriteLine("TableName: " & dataTable.TableName)

    ' Iterate through the collection and print 
    ' each name and type value.
    Dim constraint As Constraint
    For Each constraint In  dataTable.Constraints
        Console.WriteLine("Constraint Name: " _
            & constraint.ConstraintName)
        Console.WriteLine("Type: " _
            & constraint.GetType().ToString())

        ' If the constraint is a UniqueConstraint, 
        ' print its properties using a function below.
        If TypeOf constraint Is UniqueConstraint Then
            PrintUniqueConstraintProperties(constraint)
        End If

        ' If the constraint is a ForeignKeyConstraint, 
        ' print its properties using a function below.
        If TypeOf constraint Is ForeignKeyConstraint Then
            PrintForeigKeyConstraintProperties(constraint)
        End If
    Next constraint
End Sub

Private Sub PrintUniqueConstraintProperties( _
    constraint As Constraint)

    Dim uniqueConstraint As UniqueConstraint
    uniqueConstraint = CType(constraint, UniqueConstraint)

    ' Get the Columns as an array.
    Dim columnArray() As DataColumn
    columnArray = uniqueConstraint.Columns

    ' Print each column's name.
    Dim i As Integer
    For i = 0 To columnArray.Length - 1
        Console.WriteLine("Column Name: " _
            & columnArray(i).ColumnName)
    Next i
End Sub

Private Sub PrintForeigKeyConstraintProperties( _
    constraint As Constraint)

    Dim fkConstraint As ForeignKeyConstraint
    fkConstraint = CType(constraint, ForeignKeyConstraint)
    
    ' Get the Columns as an array.
    Dim columnArray() As DataColumn
    columnArray = fkConstraint.Columns
    
    ' Print each column's name.
    Dim i As Integer
    For i = 0 To columnArray.Length - 1
        Console.WriteLine("Column Name: " _
            & columnArray(i).ColumnName)
    Next i
    Console.WriteLine()
    
    ' Get the related columns and print each columns name.
    columnArray = fkConstraint.RelatedColumns
    For i = 0 To columnArray.Length - 1
        Console.WriteLine("Related Column Name: " _
            & columnArray(i).ColumnName)
    Next i
    Console.WriteLine()
End Sub

Комментарии

Ограничение — это правило, используемое для поддержания целостности данных в DataTable.A constraint is a rule used to maintain the integrity of the data in the DataTable. Например, при удалении значения, используемого в одной или нескольких связанных таблицах, ForeignKeyConstraint определяет, будут ли значения в связанных таблицах также удалены, установлены в значения NULL, установлены в значения по умолчанию или если никакие действия не выполняются.For example, when you delete a value that is used in one or more related tables, a ForeignKeyConstraint determines whether the values in the related tables are also deleted, set to null values, set to default values, or whether no action occurs. А UniqueConstraint, с другой стороны, просто гарантирует уникальность всех значений в определенной таблице.A UniqueConstraint, on the other hand, just makes sure that all values within a particular table are unique. Дополнительные сведения см. в разделе ограничения DataTable.For more information, see DataTable Constraints.

Базовый Constraint конструктор не используется.A base Constraint constructor is not used. Ограничения первичного или уникального ключа создаются с помощью UniqueConstraint конструктора, а ограничения внешнего ключа создаются с ForeignKeyConstraint помощью конструктора.Primary or unique key constraints are created by using the UniqueConstraint constructor, and foreign key constraints are created by using the ForeignKeyConstraint constructor.

Конструкторы

Constraint() Constraint() Constraint() Constraint()

Инициализирует новый экземпляр класса Constraint.Initializes a new instance of the Constraint class.

Свойства

ConstraintName ConstraintName ConstraintName ConstraintName

Имя ограничения в ConstraintCollection.The name of a constraint in the ConstraintCollection.

ExtendedProperties ExtendedProperties ExtendedProperties ExtendedProperties

Возвращает коллекцию определенных пользователем свойств ограничений.Gets the collection of user-defined constraint properties.

Table Table Table Table

Возвращает объект DataTable, к которому применяется ограничение.Gets the DataTable to which the constraint applies.

_DataSet _DataSet _DataSet _DataSet

Возвращает объект DataSet, которому принадлежит данное ограничение.Gets the DataSet to which this constraint belongs.

Методы

CheckStateForProperty() CheckStateForProperty() CheckStateForProperty() CheckStateForProperty()

Возвращает объект DataSet, которому принадлежит данное ограничение.Gets the DataSet to which this constraint belongs.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
SetDataSet(DataSet) SetDataSet(DataSet) SetDataSet(DataSet) SetDataSet(DataSet)

Задает объект DataSet ограничения.Sets the constraint's DataSet.

ToString() ToString() ToString() ToString()

Возвращает свойство ConstraintName, если оно существует, в виде строки.Gets the ConstraintName, if there is one, as a string.

Применяется к

Потокобезопасность

Этот тип является надежным для многопоточных операций чтения.This type is safe for multithreaded read operations. Необходимо синхронизировать любые операции записи.You must synchronize any write operations.

Дополнительно