Partager via


Lier des contrôles Windows Forms à des données dans des applications .NET Framework

Remarque

La DataSet classe et les classes associées sont des technologies .NET Framework héritées du début des années 2000 qui 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. Les technologies sont particulièrement utiles pour les applications qui permettent aux utilisateurs de modifier les données et de conserver les modifications apportées à la base de données. Bien que les jeux de données soient une technologie éprouvée, l’approche recommandée pour les nouvelles applications .NET consiste à utiliser Entity Framework Core. Entity Framework offre un moyen plus naturel d’utiliser des données tabulaires en tant que modèles objet et dispose d’une interface de programmation plus simple.

Vous pouvez afficher des données aux utilisateurs de votre application en liant des données à Windows Forms. Pour créer ces contrôles liés aux données, faites glisser des éléments de la fenêtre Sources de données vers le Concepteur Windows Forms dans Visual Studio.

Opération de déplacement de source de données

Conseil / Astuce

Si la fenêtre Sources de données n’est pas visible, vous pouvez l’ouvrir en choisissant Afficher>d’autressources de données Windows > ou en appuyant sur Maj Alt++D. Vous devez ouvrir un projet dans Visual Studio pour afficher la fenêtre Sources de données .

Avant de faire glisser des éléments, vous pouvez définir le type de contrôle auquel vous souhaitez établir une liaison. Différentes valeurs s’affichent selon que vous choisissez la table elle-même ou une colonne individuelle. Vous pouvez également définir des valeurs personnalisées. Pour une table, Details signifie que chaque colonne est liée à un contrôle distinct.

Lier la source de données à DataGridView

Contrôles BindingSource et BindingNavigator

Le BindingSource composant sert à deux fins. Tout d’abord, il fournit une couche d’abstraction lors de la liaison des contrôles aux données. Les contrôles sur le formulaire sont liés au BindingSource composant au lieu d’être directement à une source de données. Ensuite, il peut gérer une collection d’objets. L'ajout d'un type à BindingSource crée une liste de ce type.

Pour plus d’informations sur le BindingSource composant, consultez :

Le contrôle BindingNavigator fournit une interface utilisateur permettant de naviguer dans les données affichées par une application Windows.

Lier des données dans un contrôle DataGridView

Pour un contrôle DataGridView, la table entière est liée à ce contrôle unique. Lorsque vous faites glisser un DataGridView vers le formulaire, une bande d’outils permettant de naviguer dans les enregistrements (BindingNavigator) s’affiche également. Un DataSet, TableAdapter et BindingSourceBindingNavigator apparaît dans la barre d’état du composant. Dans l’illustration suivante, un TableAdapterManager est également ajouté, car la table Customers a une relation avec la table Orders. Ces variables sont toutes déclarées dans le code généré automatiquement en tant que membres privés dans la classe de formulaire. Le code généré automatiquement pour remplir DataGridView se trouve dans le Form_Load gestionnaire d’événements. Le code permettant d’enregistrer les données pour mettre à jour la base de données se trouve dans le Save gestionnaire d’événements pour BindingNavigator. Vous pouvez déplacer ou modifier ce code si nécessaire.

GridView avec BindingNavigator

Vous pouvez personnaliser le comportement de DataGridView et de BindingNavigator en cliquant sur la balise active dans le coin supérieur droit de chacun d’eux :

Balises actives DataGridView et Binding Navigator

Si les contrôles dont votre application a besoin ne sont pas disponibles dans la fenêtre Sources de données , vous pouvez ajouter des contrôles. Pour plus d’informations, consultez Ajouter des contrôles personnalisés à la fenêtre Sources de données.

Vous pouvez également faire glisser des éléments de la fenêtre Sources de données sur des contrôles déjà sur un formulaire pour lier le contrôle aux données. Un contrôle qui est déjà lié à des données voit ses liaisons de données réinitialisées en fonction de l’élément le plus récemment glissé sur celui-ci. Pour être des cibles de suppression valides, les contrôles doivent être capables d’afficher le type de données sous-jacent de l’élément déplacé vers celui-ci à partir de la fenêtre Sources de données . Par exemple, il n’est pas valide de faire glisser un élément de type de DateTime sur un CheckBox, car le CheckBox n’est pas capable d’afficher une date.

Lier des données dans des contrôles individuels

Lorsque vous liez une source de données à Details, chaque colonne du jeu de données est liée à un contrôle distinct.

Lier la source de données aux détails

Importante

Notez que dans l’illustration précédente, vous faites glisser à partir de la propriété Orders de la table Customers, et non de la table Orders. En liant à la Customer.Orders propriété, les commandes de navigation effectuées dans DataGridView sont reflétées immédiatement dans les contrôles de détails. Si vous avez fait glisser à partir de la table Orders, les contrôles sont toujours liés au jeu de données, mais ils ne sont pas synchronisés avec DataGridView.

L’illustration suivante montre les contrôles liés aux données par défaut qui sont ajoutés au formulaire après que la propriété Orders de la table Customers est liée aux détails dans la fenêtre Sources de données .

Table Commandes liée aux détails

Notez également que chaque contrôle a une balise intelligente. Cette balise active les personnalisations qui s’appliquent uniquement à ce contrôle.