Compartilhar via


Rule Enumeração

Definição

Indica a ação que ocorre quando um ForeignKeyConstraint é imposto.

public enum class Rule
public enum Rule
type Rule = 
Public Enum Rule
Herança

Campos

Cascade 1

Excluir ou atualizar linhas relacionadas. Esse é o padrão.

None 0

Nenhuma ação em linhas relacionadas.

SetDefault 3

Definir valores em linhas relacionadas como o valor contido na propriedade DefaultValue.

SetNull 2

Definir valores em linhas relacionadas como DBNull.

Exemplos

' 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

Comentários

Os Rule valores são definidos como e UpdateRule as DeleteRule propriedades de um ForeignKeyConstraint objeto encontrado em um DataTable objeto ConstraintCollection.

Os Rule valores determinam a ação que ocorre quando um valor em uma coluna é excluído ou atualizado. Dos dois, excluir um valor é o mais crítico e exigente de atenção ao definir uma regra.

No caso em que um valor é excluído, Cascade especifica que todas as linhas que contêm esse valor também são excluídas. SetNull especifica que os valores em todas as colunas filho são definidos como valores nulos. SetDefault especifica que todas as colunas filho sejam definidas como o valor padrão da coluna. None especifica que nenhuma ação ocorrerá, mas exceções são geradas.

No caso em que um valor é atualizado, Cascade especifica que todas as colunas filho também são atualizadas com o novo valor. SetNull especifica que todas as colunas filho sejam definidas como valores nulos. SetDefault especifica que todos os valores de coluna filho sejam definidos como o valor padrão. None especifica que nenhuma ação seja tomada, mas as exceções são geradas.

As restrições em um DataSet não são impostas, a menos que a EnforceConstraints propriedade seja true.

Quando o AcceptChanges método é chamado, o AcceptRejectRule determina ainda mais qual ação ocorre.

Aplica-se a

Confira também