Désactiver les contraintes lors du remplissage d’un jeu de données dans les applications .NET Framework

Remarque

Les jeux de données et les classes associées sont des technologies .NET Framework héritées qui datent du début des années 2000. Elles permettent aux applications d’utiliser des données en mémoire pendant que les applications sont déconnectées de la base de données. Elles sont particulièrement utiles aux applications qui permettent aux utilisateurs de modifier des données, et de rendre ces changements persistants dans la base de données. Même si les jeux de données sont une technologie très efficace, nous vous recommandons d’utiliser Entity Framework Core pour les nouvelles applications .NET. Entity Framework offre un moyen plus naturel d’utiliser des données tabulaires en tant que modèles objet. De plus, il présente une interface de programmation plus simple.

Si un jeu de données contient des contraintes (telles que des contraintes de clé étrangère), celles-ci peuvent générer des erreurs liées à l’ordre des opérations effectuées sur le jeu de données. Par exemple, le chargement d’enregistrements enfants avant le chargement des enregistrements parents associés peut violer une contrainte et provoquer une erreur. Dès que vous chargez un enregistrement enfant, la contrainte vérifie l’enregistrement parent associé et génère une erreur.

Sans un mécanisme permettant la suspension temporaire des contraintes, une erreur serait générée chaque fois que vous essayez de charger un enregistrement dans la table enfant. Les propriétés BeginEdit et EndEdit permettant également de suspendre toutes les contraintes dans un jeu de données.

Notes

Les événements de validation (par exemple, ColumnChanging et RowChanging) ne sont pas déclenchés si les contraintes sont désactivées.

Pour suspendre les contraintes de mise à jour par programmation

  • L’exemple suivant montre comment désactiver temporairement la vérification des contraintes dans un jeu de données :

    dataSet1.EnforceConstraints = false;
    // Perform some operations on the dataset
    dataSet1.EnforceConstraints = true;
    

Pour suspendre les contraintes de mise à jour à l’aide du Concepteur de DataSet

  1. Ouvrez votre dataset dans le Concepteur de DataSet. Pour plus d’informations, consultez Procédure pas à pas : Création d’un jeu de données dans le Concepteur de DataSet.

  2. Dans la fenêtre Propriétés , définissez la propriété EnforceConstraints sur false.