Freigeben über


Constraint Klasse

Definition

Stellt eine Einschränkung dar, die für ein oder mehrere DataColumn-Objekte erzwungen werden kann.

public ref class Constraint abstract
[System.ComponentModel.TypeConverter(typeof(System.Data.ConstraintConverter))]
public abstract class Constraint
public abstract class Constraint
[System.ComponentModel.TypeConverter(typeof(System.Data.ConstraintConverter))]
[System.Serializable]
public abstract class Constraint
[<System.ComponentModel.TypeConverter(typeof(System.Data.ConstraintConverter))>]
type Constraint = class
type Constraint = class
[<System.ComponentModel.TypeConverter(typeof(System.Data.ConstraintConverter))>]
[<System.Serializable>]
type Constraint = class
Public MustInherit Class Constraint
Vererbung
Constraint
Abgeleitet
Attribute

Beispiele

Im folgenden Beispiel wird die Auflistung von Einschränkungen für ein DataTable untersucht und bestimmt, ob jede Einschränkung eine UniqueConstraint oder eine ForeignKeyConstraintist. Die Eigenschaften der Einschränkung werden dann angezeigt.

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)
        {
            PrintForeignKeyConstraintProperties(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 PrintForeignKeyConstraintProperties(
    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

Hinweise

Eine Einschränkung ist eine Regel, die verwendet wird, um die Integrität der Daten in der DataTablebeizubehalten. Wenn Sie z. B. einen Wert löschen, der in einer oder mehreren verknüpften Tabellen verwendet wird, bestimmt, ForeignKeyConstraint ob die Werte in den verknüpften Tabellen ebenfalls gelöscht, auf NULL-Werte festgelegt, auf Standardwerte festgelegt werden oder ob keine Aktion ausgeführt wird. Ein UniqueConstraintstellt dagegen sicher, dass alle Werte innerhalb einer bestimmten Tabelle eindeutig sind. Weitere Informationen finden Sie unter DataTable-Einschränkungen.

Ein Basiskonstruktor Constraint wird nicht verwendet. Primär- oder Eindeutigkeitsschlüsseleinschränkungen werden mithilfe des UniqueConstraint Konstruktors erstellt, und Fremdschlüsseleinschränkungen werden mithilfe des ForeignKeyConstraint Konstruktors erstellt.

Konstruktoren

Constraint()

Initialisiert eine neue Instanz der Constraint-Klasse.

Eigenschaften

_DataSet

Ruft das DataSet ab, zu dem diese Tabelle gehört.

ConstraintName

Der Name einer Einschränkung in der ConstraintCollection.

ExtendedProperties

Ruft die Auflistung von benutzerdefinierten Einschränkungseigenschaften ab.

Table

Ruft die DataTable ab, auf die die Einschränkung angewendet wird.

Methoden

CheckStateForProperty()

Ruft das DataSet ab, zu dem diese Tabelle gehört.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
SetDataSet(DataSet)

Legt das DataSet der Einschränkung fest.

ToString()

Ruft den ConstraintName (falls vorhanden) als Zeichenfolge ab.

Gilt für:

Threadsicherheit

Dieser Typ ist für Multithreadlesevorgänge sicher. Sie müssen alle Schreibvorgänge synchronisieren.

Weitere Informationen