Constraint-Klasse
Stellt eine Einschränkung dar, die für ein oder mehrere DataColumn-Objekte erzwungen werden kann.
Namespace: System.Data
Assembly: System.Data (in system.data.dll)
Syntax
'Declaration
Public MustInherit Class Constraint
'Usage
Dim instance As Constraint
public abstract class Constraint
public ref class Constraint abstract
public abstract class Constraint
public abstract class Constraint
Hinweise
Eine Einschränkung ist eine Regel, mit der die Integrität der Daten in der DataTable bewahrt wird. Wenn Sie z. B. einen Wert löschen, der in einer oder mehreren verknüpften Tabellen verwendet wird, bestimmt eine ForeignKeyConstraint, ob die Werte in den verknüpften Tabellen ebenfalls gelöscht, auf NULL-Werte oder auf Standardwerte festgelegt werden oder ob keine Aktion ausgeführt wird. Eine UniqueConstraint stellt hingegen lediglich sicher, dass alle Werte in einer bestimmten Tabelle eindeutig sind. Weitere Informationen finden Sie unter Hinzufügen von Einschränkungen zu einer Tabelle.
Ein Constraint-Basiskonstruktor wird nicht verwendet. Primäre oder eindeutige Schlüsseleinschränkungen werden mit dem UniqueConstraint-Konstruktor erstellt, und Fremdschlüsseleinschränkungen werden mit dem ForeignKeyConstraint-Konstruktor erstellt.
Beispiel
Im folgenden Beispiel wird die Auflistung von Einschränkungen für eine DataTable überprüft, und es wird bestimmt, ob es sich bei den einzelnen Einschränkungen um eine UniqueConstraint oder eine ForeignKeyConstraint handelt. Anschließend werden die Eigenschaften der jeweiligen Einschränkung angezeigt.
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
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();
}
Vererbungshierarchie
System.Object
System.Data.Constraint
System.Data.ForeignKeyConstraint
System.Data.UniqueConstraint
Threadsicherheit
Dieser Typ ist bei Multithread-Lesevorgängen sicher. Sie müssen alle Schreibvorgänge synchronisieren.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
Constraint-Member
System.Data-Namespace
ConstraintCollection
Constraints
ForeignKeyConstraint
UniqueConstraint