Condividi tramite


Rule Enumerazione

Definizione

Indica l'azione che si verifica quando viene applicato un ForeignKeyConstraint.

public enum class Rule
public enum Rule
type Rule = 
Public Enum Rule
Ereditarietà

Campi

Cascade 1

Elimina o aggiorna righe correlate. Questa è l'impostazione predefinita.

None 0

Non viene eseguita alcuna operazione sulle righe correlate.

SetDefault 3

Imposta i valori nelle righe correlate sul valore contenuto nella proprietà DefaultValue.

SetNull 2

Imposta i valori nelle righe correlate su DBNull.

Esempio

' 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

Commenti

I Rule valori vengono impostati su UpdateRule e le DeleteRule proprietà di un ForeignKeyConstraint oggetto trovato in un DataTable oggetto .ConstraintCollection

I Rule valori determinano l'azione che si verifica quando un valore in una colonna viene eliminato o aggiornato. Tra i due, l'eliminazione di un valore è più critica e impegnativa dell'attenzione quando si imposta una regola.

Nel caso in cui venga eliminato un valore, Cascade specifica che vengono eliminate anche tutte le righe contenenti tale valore. SetNull specifica che i valori in tutte le colonne figlio sono impostati su valori Null. SetDefault specifica che tutte le colonne figlio devono essere impostate sul valore predefinito per la colonna. None specifica che non verrà eseguita alcuna azione, ma vengono generate eccezioni.

Nel caso in cui un valore venga aggiornato, Cascade specifica che tutte le colonne figlio vengono aggiornate in modo analogo con il nuovo valore. SetNull specifica che tutte le colonne figlio devono essere impostate su valori Null. SetDefault specifica che tutti i valori di colonna figlio devono essere impostati sul valore predefinito. None specifica che non viene eseguita alcuna azione, ma vengono generate eccezioni.

I vincoli per un oggetto DataSet non vengono applicati a meno che la EnforceConstraints proprietà non sia true.

Quando viene chiamato il AcceptChanges metodo , determina AcceptRejectRule ulteriormente l'azione che si verifica.

Si applica a

Vedi anche