ConstraintCollection.Add メソッド (String, DataColumn[], DataColumn )
指定した親列と子列の配列を使用して新しい ForeignKeyConstraint を作成し、この制約をコレクションに追加します。
Overloads Public Overridable Function Add( _
ByVal name As String, _ ByVal primaryKeyColumns() As DataColumn, _ ByVal foreignKeyColumns() As DataColumn _) As Constraint
[C#]
public virtual Constraint Add(stringname,DataColumn[] primaryKeyColumns,DataColumn[] foreignKeyColumns);
[C++]
public: virtual Constraint* Add(String* name,DataColumn* primaryKeyColumns[],DataColumn* foreignKeyColumns[]);
[JScript]
public function Add(
name : String,primaryKeyColumns : DataColumn[],foreignKeyColumns : DataColumn[]) : Constraint;
パラメータ
- name
ForeignKeyConstraint の名前。 - primaryKeyColumns
主キー列または親列である DataColumn オブジェクトの配列。 - foreignKeyColumns
外部キー列または子列である DataColumn オブジェクトの配列。
戻り値
新しい ForeignKeyConstraint 。
解説
制約が正常に追加された場合は、 CollectionChanged イベントが発生します。
使用例
[Visual Basic, C#, C++] DataColumn オブジェクトの配列を 2 つ作成し、データセット内の 2 つのテーブル間に ForeignKeyConstraint リレーションシップを 2 つ作成する例を次に示します。
Private Sub AddForeignConstraint(myDataSet As DataSet, myTable As DataTable)
Try
Dim parentCols(2) As DataColumn
Dim childCols(2) As DataColumn
' Get the tables from the DataSet.
Dim tCustomers As DataTable = myDataSet.Tables("Customers")
Dim tOrders As DataTable = myDataSet.Tables("Orders")
' Set Columns.
parentCols(0) = tCustomers.Columns("id")
parentCols(1) = tCustomers.Columns("Name")
childCols(0) = tOrders.Columns("CustID")
childCols(1) = tOrders.Columns("CustName")
' Create ForeignKeyConstraint
myTable.Constraints.Add("CustOrdersConstraint", parentCols, childCols)
Catch e As Exception
' In case the constraint already exists, catch the collision here and respond.
Dim log As System.Diagnostics.EventLog = New System.Diagnostics.EventLog()
log.Source = "My Application"
log.WriteEntry(e.ToString())
Console.WriteLine("Exception of type {0} occurred.", e.GetType().ToString())
End Try
End Sub
[C#]
private void AddForeignConstraint(DataSet myDataSet, DataTable myTable){
try{
DataColumn[] parentCols = new DataColumn[2];
DataColumn[] childCols = new DataColumn[2];
// Get the tables from the DataSet.
DataTable tCustomers = myDataSet.Tables["Customers"];
DataTable tOrders = myDataSet.Tables["Orders"];
// Set Columns.
parentCols[0]=tCustomers.Columns["id"];
parentCols[1]=tCustomers.Columns["Name"];
childCols[0] = tOrders.Columns["CustID"];
childCols[1] = tOrders.Columns["CustName"];
// Create ForeignKeyConstraint
myTable.Constraints.Add("CustOrdersConstraint",parentCols, childCols);
}
catch(Exception e){
// In case the constraint already exists, catch the collision here and respond.
System.Diagnostics.EventLog log = new System.Diagnostics.EventLog();
log.Source = "My Application";
log.WriteEntry(e.ToString());
Console.WriteLine("Exception of type {0} occurred.", e.GetType());
}
}
[C++]
private:
void AddForeignConstraint(DataSet* myDataSet, DataTable* myTable){
try{
DataColumn* parentCols[] = new DataColumn*[2];
DataColumn* childCols[] = new DataColumn*[2];
// Get the tables from the DataSet.
DataTable* tCustomers = myDataSet->Tables->Item[S"Customers"];
DataTable* tOrders = myDataSet->Tables->Item[S"Orders"];
// Set Columns.
parentCols->Item[0]=tCustomers->Columns->Item[S"id"];
parentCols->Item[1]=tCustomers->Columns->Item[S"Name"];
childCols->Item[0] = tOrders->Columns->Item[S"CustID"];
childCols->Item[1] = tOrders->Columns->Item[S"CustName"];
// Create ForeignKeyConstraint
myTable->Constraints->Add(S"CustOrdersConstraint",parentCols, childCols);
}
catch(Exception* e){
// In case the constraint already exists, catch the collision here and respond.
System::Diagnostics::EventLog* log = new System::Diagnostics::EventLog();
log->Source = S"My Application";
log->WriteEntry(e->ToString());
Console::WriteLine(S"Exception of type {0} occurred.", e->GetType());
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
参照
ConstraintCollection クラス | ConstraintCollection メンバ | System.Data 名前空間 | ConstraintCollection.Add オーバーロードの一覧