Represents a constraint that can be enforced on one or more DataColumn objects.
Namespace:
System.Data
Assembly:
System.Data (in System.Data.dll)
Visual Basic (Declaration)
Public MustInherit Class Constraint
Dim instance As Constraint
public abstract class Constraint
public ref class Constraint abstract
public abstract class Constraint
A constraint is a rule used to maintain the integrity of the data in the DataTable. 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. A UniqueConstraint, on the other hand, just makes sure that all values within a particular table are unique. For more information, see DataTable Constraints (ADO.NET).
A base Constraint constructor is not used. Primary or unique key constraints are created by using the UniqueConstraint constructor, and foreign key constraints are created by using the ForeignKeyConstraint constructor.
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 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();
}
System..::.Object
System.Data..::.Constraint
System.Data..::.ForeignKeyConstraint
System.Data..::.UniqueConstraint
This type is safe for multithreaded read operations. You must synchronize any write operations.
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
.NET Framework
Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
.NET Compact Framework
Supported in: 3.5, 2.0, 1.0
XNA Framework
Supported in: 3.0, 2.0, 1.0
Reference