Partager via


Mappage des tables dans les adaptateurs de données

Mise à jour : novembre 2007

Quand un adaptateur de données lit des données dans une source, il détermine l'endroit où elles doivent être placées dans la table ou les tables de groupe de données correspondantes en se servant d'un mappage de table. Ce mappage établit un lien entre les noms de colonnes de la source et ceux de la table de groupe de données. Par exemple, les informations issues d'une colonne appelée au_id dans la source de données peuvent appartenir à une colonne appelée author_id_number dans la table du groupe de données.

Remarque :

Dans la version antérieure de Visual Studio, des adaptateurs de données étaient utilisés pour la communication entre applications et bases de données. Même si les adaptateurs de données figurent toujours parmi les principaux composants des .Fournisseurs de données .NET Framework (ADO.NET), les TableAdapters sont des composants générés par le concepteur qui simplifient le processus de déplacement des données entre votre application et une base de données. Pour plus d'informations sur l'utilisation de TableAdapters, consultez Vue d'ensemble de TableAdapter.

Par défaut, lorsque vous utilisez les outils Visual Studio pour générer un groupe de données à partir d'informations d'une source de données, les éléments du groupe de données portent le même nom que dans la source. Toutefois, il existe des cas où les noms de la source et ceux du groupe de données ne coïncident pas :

  • Le groupe de données a été créé à partir d'un schéma existant utilisant des noms différents.

  • Vous voulez modifier les noms des éléments de données dans le groupe de données pour une question de commodité, de lisibilité, de traduction ou pour toute autre raison.

  • Vous voulez contrôler les noms des données membres typées lorsque vous générez un groupe de données à partir de l'adaptateur.

Structures des mappages de table

Les mappages de table sont créés à l'aide de la propriété TableMappings de l'adaptateur qui est une collection d'éléments de type DataTableMapping. Il n'existe qu'un seul objet DataTableMapping pour chaque groupe de tables mappées. En temps normal, il n'existe qu'un seul élément de ce type, parce que les adaptateurs ne sont habituellement associés qu'avec une seule table de source et une seule table de groupe de données (toutefois, une procédure stockée peut retourner plusieurs groupes de lignes ; si tel est le cas, la deuxième table et les suivantes sont mappées avec le deuxième mappage et les suivants de la collection TableMappings).

Chaque élément de mappage contient à son tour des propriétés identifiant la table de la source de données, celle du groupe de données et une propriété ColumnMappings dont les éléments représentent les mappages en cours.

Mappage de table en action

Lorsque vous appelez la méthode Fill d'un adaptateur de données, celui-ci passe par le processus suivant pour déterminer à quel endroit du groupe de données il doit écrire les données :

  1. Il recherche chaque nom de colonne source dans l'objet TableMappings.

  2. Lorsqu'il trouve le nom de la colonne source, il extrait le nom mappé pour la colonne correspondante de la table du groupe de données.

  3. En se servant du nom obtenu à l'étape 2, l'adaptateur écrit les données de la colonne source dans la colonne correspondante du groupe de données.

Plusieurs problèmes peuvent empêcher l'adaptateur de suivre le processus décrit plus haut. Les deux principaux problèmes sont les suivants :

  • Aucun mappage trouvé pour une colonne source. La raison peut être qu'il n'y a rien de défini pour la propriété TableMappings ou qu'une colonne n'est pas mappée.

  • La colonne à écrire n'est pas définie dans le schéma du groupe de données, qu'il soit mappé ou non dans la propriété TableMappings.

L'adaptateur prend en charge deux propriétés vous permettant de spécifier ce qui doit se produire lorsque survient l'une ou l'autre de ces situations. Ces situations ne sont pas nécessairement des erreurs, parce que l'adaptateur peut toujours remplir le groupe de données lorsqu'elles se produisent.

La propriété MissingMappingAction vous permet de spécifier l'action que l'adaptateur doit entreprendre en cas d'absence du mappage. Les options possibles sont :

  • Passthrough - L'adaptateur tente de charger la colonne dans une colonne du groupe de données portant le même nom. S'il n'existe aucune colonne dans le groupe de données portant ce nom, la marche à suivre est déterminée par le paramètre MissingSchemaAction (voir ci-dessous).

  • Ignore - Les colonnes qui ne sont pas correctement mappées ne sont pas chargées dans le groupe de données.

  • Error - Déclenche une erreur.

La propriété MissingSchemaAction vous permet de spécifier ce qui doit se produire lorsque l'adaptateur tente d'écrire des données dans une colonne qui n'est pas définie dans le schéma du groupe de données. Les valeurs possibles sont :

  • Add - La table ou la colonne est ajoutée au schéma et au groupe de données.

  • AddWithKey - La table ou la colonne est ajoutée au schéma et au groupe de données avec la clé primaire.

  • Ignore - La table ou la colonne qui n'est pas représentée dans le schéma n'est pas ajoutée au groupe de données.

  • Error - L'adaptateur déclenche une erreur.

En général, vous définissez conjointement les deux propriétés pour répondre aux besoins propres de votre application. L'attribution à la propriété MissingMappingAction de la valeur Passthrough et à la propriété MissingSchemaAction de la valeur Add a pour effet de dupliquer automatiquement les noms de la table et de la colonne de la source dans le groupe de données.

À l'inverse, vous pouvez spécifier la vérification des erreurs dans les applications dont le schéma de groupe de données est strictement défini. Dans ce cas, le fait d'obtenir des données d'une source sans colonne cible clairement définie peut constituer une violation d'une règle d'entreprise ou un autre type d'erreur.

Vous spécifiez Ignore lorsque vous voulez vous assurer que les seules données chargées dans le groupe de données sont celles que vous avez explicitement définies dans le schéma ou mappées dans la propriété TableMappings. Ce paramètre est utile lorsque l'adaptateur appelle une procédure stockée ou une instruction SQL qui retourne plus de colonnes que nécessaire au groupe de données.

Voir aussi

Tâches

Comment : mapper des colonnes d'une source de données à des colonnes d'une table de données d'un groupe de données

Concepts

Introduction aux adaptateurs de données

Remplissage d'un DataSet à partir d'un DataAdapter (ADO.NET)

Nouveautés des données

Création d'applications de données à l'aide de Visual Studio

Référence

Mappages de table, boîte de dialogue

Autres ressources

DataAdapters et DataReaders (ADO.NET)

Création d'adaptateurs de données

Procédures pas à pas relatives aux données

ADO.NET