ForeignKeyConstraint 類別

定義

表示值或資料列刪除或更新時,在主索引鍵/外部索引鍵關聯性 (Relationship) 中的資料行集上強制執行的動作限制。

public ref class ForeignKeyConstraint : System::Data::Constraint
public class ForeignKeyConstraint : System.Data.Constraint
[System.Serializable]
public class ForeignKeyConstraint : System.Data.Constraint
type ForeignKeyConstraint = class
    inherit Constraint
[<System.Serializable>]
type ForeignKeyConstraint = class
    inherit Constraint
Public Class ForeignKeyConstraint
Inherits Constraint
繼承
ForeignKeyConstraint
屬性

範例

下列範例會建立 、 ForeignKeyConstraint設定它的一些屬性,並將它新增至 DataTable 物件的 ConstraintCollection

' The next line goes into the Declarations section of the module:
' SuppliersProducts is a class derived from DataSet.
Private suppliersProducts As SuppliersProducts

Private Sub CreateConstraint()
    ' Declare parent column and child column variables.
    Dim parentColumn As DataColumn
    Dim childColumn As DataColumn
    Dim fkeyConstraint As ForeignKeyConstraint

    ' Set parent and child column variables.
    parentColumn = suppliersProducts.Tables("Suppliers").Columns("SupplierID")
    childColumn = suppliersProducts.Tables("Products").Columns("SupplierID")
    fkeyConstraint = New ForeignKeyConstraint( _
        "SupplierFKConstraint", parentColumn, childColumn)

    ' Set null values when a value is deleted.
    fkeyConstraint.DeleteRule = Rule.SetNull
    fkeyConstraint.UpdateRule = Rule.Cascade
    fkeyConstraint.AcceptRejectRule = AcceptRejectRule.Cascade

    ' Add the constraint, and set EnforceConstraints to true.
    suppliersProducts.Tables("Products").Constraints.Add(fkeyConstraint)
    suppliersProducts.EnforceConstraints = True
End Sub

備註

ForeignKeyConstraint會限制刪除或更新數據行 (或數據行) 中的值時所執行的動作。 這類條件約束旨在與主鍵數據行搭配使用。 在兩個數據表之間的父子關聯性中,從父數據表刪除值可能會影響子數據列,方式如下之一。

  • 子數據列也可以刪除 (級聯動作) 。

  • 子數據行中的值 (或數據行) 可以設定為 Null 值。

  • 子數據行中的值 (或數據行) 可以設定為預設值。

  • 可以產生例外狀況。

ForeignKeyConstraint物件包含在 的 DataTableConstraintCollection,這是透過 屬性存取的 Constraints

除非 屬性設定為 true,否則EnforceConstraints不會強制執行條件約束。

每當DataTable叫用物件的 AcceptChanges 方法時,就會AcceptRejectRule強制執行 。

建構函式

ForeignKeyConstraint(DataColumn, DataColumn)

使用指定的父代和子系 ForeignKeyConstraint 物件,初始化 DataColumn 類別的新執行個體。

ForeignKeyConstraint(DataColumn[], DataColumn[])

使用父代和子系 ForeignKeyConstraint 物件的指定陣列,初始化 DataColumn 類別的新執行個體。

ForeignKeyConstraint(String, DataColumn, DataColumn)

使用指定名稱以及父代和子系 ForeignKeyConstraint 物件,初始化 DataColumn 類別的新執行個體。

ForeignKeyConstraint(String, DataColumn[], DataColumn[])

使用指定名稱以及父代和子系 ForeignKeyConstraint 物件的陣列,初始化 DataColumn 類別的新執行個體。

ForeignKeyConstraint(String, String, String, String[], String[], AcceptRejectRule, Rule, Rule)

這個建構函式是在 Visual Studio 環境中,針對支援設計階段而提供。 接著必須透過 ForeignKeyConstraint,將使用此建構函式建立的 AddRange(Constraint[]) 物件加入至集合中。 具有指定名稱的資料表和資料行必須在呼叫方法時便存在,如果在呼叫這個建構函式之前便已經呼叫 BeginInit(),則具有指定名稱的資料表和資料行必須在呼叫 EndInit() 時已存在。

ForeignKeyConstraint(String, String, String[], String[], AcceptRejectRule, Rule, Rule)

這個建構函式是在 Visual Studio 環境中,針對支援設計階段而提供。 接著必須透過 ForeignKeyConstraint,將使用此建構函式建立的 AddRange(Constraint[]) 物件加入至集合中。 具有指定名稱的資料表和資料行必須在呼叫方法時便存在,如果在呼叫這個建構函式之前便已經呼叫 BeginInit(),則具有指定名稱的資料表和資料行必須在呼叫 EndInit() 時已存在。

屬性

_DataSet

取得這個條件約束所屬的 DataSet

(繼承來源 Constraint)
AcceptRejectRule

指示在叫用 AcceptChanges() 時應該跨越這個條件約束來發生的動作。

Columns

取得這個條件約束的子資料行。

ConstraintName

ConstraintCollection 中的條件約束名稱。

(繼承來源 Constraint)
DeleteRule

取得或設定資料列刪除時會跨越這個條件約束發生的動作。

ExtendedProperties

取得使用者定義條件約束屬性的集合。

(繼承來源 Constraint)
RelatedColumns

這個條件約束的父資料行。

RelatedTable

取得這個條件約束的父資料表。

Table

取得這個條件約束的子資料表。

UpdateRule

取得或設定資料列更新時會跨越這個條件約束發生的動作。

方法

CheckStateForProperty()

取得這個條件約束所屬的 DataSet

(繼承來源 Constraint)
Equals(Object)

取得值,指出目前的 ForeignKeyConstraint 是否與指定的物件相同。

GetHashCode()

取得 ForeignKeyConstraint 物件的這個執行個體之雜湊程式碼。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
SetDataSet(DataSet)

設定條件約束的 DataSet

(繼承來源 Constraint)
ToString()

取得 ConstraintName (如果有) 做為字串。

(繼承來源 Constraint)

適用於

執行緒安全性

此類型適用於多線程讀取作業。 您必須同步處理任何寫入作業。

另請參閱