Comment : créer une table de correspondance avec le composant BindingSource Windows Forms
Une table de correspondance est une table des données qui a une colonne qui affiche des données d'enregistrements dans une table connexe. Dans les procédures suivantes, un contrôle ComboBox est utilisé pour afficher le champ doté de la relation de clé étrangère du parent à la table enfant.
Pour aider à afficher ces deux tables et cette relation, voici un exemple de parent et de table enfant :
CustomersTable (table parente)
CustomerID |
CustomerName |
---|---|
712 |
Paul Koch |
713 |
Tamara Johnston |
OrdersTable (table enfant)
OrderID |
OrderDate |
CustomerID |
---|---|---|
903 |
12 février 2004 |
712 |
904 |
13 février 2004 |
713 |
Dans ce scénario, une seule table, CustomersTable, stocke les informations que vous voulez réellement afficher et enregistrer. Mais pour économiser de l'espace, la table ignore des données qui ajoutent de la clarté. L'autre table, OrdersTable, contient uniquement des informations connexes liées à l'apparence portant sur les équivalences entre le numéro d'ID du client et la date de commande et l'ID de commande. Il n'y a aucune mention des noms des clients.
Quatre propriétés importantes sont définies sur le contrôle ComboBox, contrôle (Windows Forms) pour créer la table de correspondance.
La propriété DataSource contient le nom de cette table.
La propriété DisplayMember comprend la colonne de données de la table à afficher pour le texte de contrôle (nom du client).
La propriété ValueMember comporte la colonne de données de la table contenant les informations stockées (le numéro d'ID dans la table parente).
La propriété SelectedValue fournit la valeur de recherche pour la table enfant, selon le ValueMember.
Les procédures suivantes vous montrent comment à disposer votre formulaire en tant que table de correspondance et lier les données aux contrôles qui s'y trouvent. Pour exécuter les procédures avec succès, vous devez avoir une source de données avec des tables parentes et des tables enfants qui ont une relation de clé étrangère, comme indiqué précédemment.
Pour créer l'interface utilisateur
À partir de la Boîte à outils, faites glisser un contrôle ComboBox sur le formulaire.
Ce contrôle affichera la colonne à partir de la table parente.
Faites glisser d'autres contrôles pour afficher des détails de la table enfant. Le format des données dans la table doit déterminer quels contrôles vous choisissez. Pour plus d'informations, consultez Classement par fonction des contrôles Windows Forms.
Faites glisser un contrôle BindingNavigator sur le formulaire ; cela vous permettra de déplacer les données dans la table enfant.
Pour vous connecter aux données et les lier aux contrôles
Sélectionnez ComboBox et cliquez sur le glyphe de Tâche guidée pour afficher la boîte de dialogue Tâche guidée.
Sélectionnez Utilisez des éléments liés aux données.
Cliquez sur la flèche à côté de la zone déroulante Source de données. Si une source de données a été configurée précédemment pour le projet ou le formulaire, elle apparaîtra ; sinon, complétez les étapes suivantes (cet exemple utilise les tables Customers et Orders de l'exemple de base de données Northwind et y fait référence à elles dans les parenthèses).
Cliquez sur Ajouter une source de données au projet pour vous connecter aux données et créer une source de données.
Dans la page d'accueil de l'Assistant Configuration de source de données, cliquez sur Suivant.
Sélectionnez Base de données dans la page Choisir un type de source de données.
Sélectionnez une connexion de données dans la liste des connexions disponibles sur la page Choisir votre connexion de données. Si la connexion de données de votre choix n'est pas disponible, sélectionnez Nouvelle connexion pour en créer une nouvelle. Pour plus d'informations, consultez Ajouter/Modifier une connexion, boîte de dialogue (Général).
Cliquez sur Oui, enregistrer la connexion pour stocker la chaîne de connexion dans le fichier de configuration de l'application.
Sélectionnez les objets de base de données à insérer dans votre application. Dans ce cas, sélectionnez une table parente et une table enfant (par exemple, Customers et Orders) avec une relation de clé étrangère.
Remplacez le nom du groupe de données par défaut, le cas échéant.
Cliquez sur Terminer.
Dans la zone déroulante Afficher le membre, sélectionnez le nom de colonne (par exemple, ContactName) à afficher dans la zone de liste déroulante.
Dans la zone déroulante Membre Value, sélectionnez la colonne (par exemple, CustomerID) pour exécuter l'opération de recherche dans la table enfant.
Dans la zone déroulante Valeur sélectionnée, naviguez jusqu'à Sources de données du projet et le groupe de données que vous venez de créer et qui contient les tables parentes et les tables enfants. Sélectionnez la même propriété de la table enfant qui est le Membre Value de la table parente (par exemple, Orders.CustomerID). Le BindingSource, jeu de données et composants de l'adaptateur de la table appropriés seront créés et ajoutés au formulaire.
Liez le contrôle BindingNavigator au BindingSource de la table enfant (par exemple, OrdersBindingSource).
Liez les contrôles autres que le contrôle ComboBox et BindingNavigator aux champs de détails de BindingSource de la table enfant (par exemple, OrdersBindingSource) que vous souhaitez afficher.
Voir aussi
Référence
Concepts
Liaison de contrôles à des données dans Visual Studio