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 MsDb2DataAdapter
Fill
.MsDb2DataAdapter
FillSchema
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 MissingSchemaAction
AddWithKey
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 ».