Ajout de contraintes à un jeu de données DB2

La Fill méthode du remplit un jeu de MsDb2DataAdapter données uniquement avec des colonnes de table et des lignes d’une source de données ; bien que les contraintes soient généralement définies par la source de données, la Fill méthode n’ajoute pas ces informations de schéma au jeu de données par défaut. Pour remplir un jeu de données avec des informations de contrainte de clé primaire existantes à partir d’une source de données, vous pouvez appeler la méthode du , ou définir la MissingSchemaAction propriété de sur AddWithKey avant d’appeler MsDb2DataAdapterFill.MsDb2DataAdapterFillSchema Cela garantit que les contraintes de clé primaire dans le jeu de données reflètent celles de la source de données. Les informations de contrainte de clé étrangère ne sont pas incluses et doivent être créées explicitement.

L’ajout d’informations de schéma à un DataSet objet avant de le remplir de données garantit que les contraintes de clé primaire sont incluses dans les DataTable objets de l’objet DataSet . Par conséquent, lorsque des appels supplémentaires pour remplir le DataSet sont effectués, les informations de colonne de clé primaire sont utilisées pour mettre en correspondance les nouvelles lignes de la source de données avec les lignes actuelles dans chaque DataTable objet, et les données actuelles dans les tables sont remplacées par les données de la source de données. Sans les informations de schéma, les nouvelles lignes de la source de données sont ajoutées au DataSet, ce qui entraîne des lignes en double.

Notes

Si une colonne d’une source de données est identifiée comme incrémentation automatique, la FillSchema méthode, ou la Fill méthode avec un MissingSchemaAction de AddWithKey, crée un DataColumn avec une AutoIncrement propriété définie sur true. Toutefois, vous devez définir les AutoIncrementStep valeurs et AutoIncrementSeed vous-même.

L’utilisation de la FillSchema méthode ou la définition de sur MissingSchemaActionAddWithKey nécessite un traitement supplémentaire au niveau de la source de données pour déterminer les informations de colonne de clé primaire. Ce traitement supplémentaire peut gêner la performance. Si vous connaissez les informations de clé primaire au moment du design, il est recommandé de spécifier explicitement la ou les colonnes de clé primaire afin d'atteindre une performance optimale.

Si le MsDb2DataAdapter rencontre plusieurs jeux de résultats retournés par la SelectCommand propriété, il crée plusieurs tables dans le jeu de données. Les tables reçoivent un nom incrémentiel par défaut de base zéro de TableN, en commençant par Table au lieu de « Table0 ». Si un nom de table est passé en tant qu’argument à la FillSchema méthode, les tables reçoivent un nom incrémentiel de base zéro de TableNameN, en commençant par TableName au lieu de « TableName0 ».