Procédure pas à pas : passage de données entre Windows Forms
Cette procédure pas à pas fournit des instructions détaillées sur le passage de données d'un formulaire à l'autre. À l'aide des tables Customers et Orders de Northwind, un formulaire permet aux utilisateurs de sélectionner un client et un autre formulaire affiche les commandes du client sélectionné. Cette procédure pas à pas montre comment créer une méthode sur un formulaire qui reçoit des données du premier formulaire.
Notes
Il ne s'agit là que d'une manière de passer des données entre des formulaires. Il existe d'autres méthodes permettant de passer des données à un formulaire, notamment : créer un deuxième constructeur pour recevoir les données, ou créer une propriété publique qui peut être définie avec les données du premier formulaire.
Cette procédure pas à pas illustre les tâches suivantes :
Création d'un nouveau projet Application Windows.
Création et configuration d'un groupe de données avec l'Configuration de source de données (Assistant).
Sélection du contrôle à créer sur le formulaire lors du déplacement d'éléments à partir de la fenêtre Sources de données. Pour plus d'informations, consultez Comment : définir le contrôle à créer lors d'une opération de glisser-déplacer à partir de la fenêtre Sources de données.
Création d'un contrôle lié aux données en faisant glisser des éléments depuis la fenêtre Sources de données jusqu'à un formulaire.
Création d'un deuxième formulaire avec une grille pour afficher les données.
Création d'une requête TableAdapter pour extraire les commandes d'un client spécifique.
Passage de données entre formulaires.
Composants requis
Pour exécuter cette procédure pas à pas, vous devez :
- avoir accès à l'exemple de base de données Northwind. Pour plus d'informations, consultez Comment : installer des exemples de bases de données.
Création de l'application Windows
Pour créer le nouveau projet Windows
Dans le menu Fichier, créez un nouveau projet.
Nommez le projet PassingDataBetweenForms.
Sélectionnez Application Windows Forms, puis cliquez sur OK. Pour plus d'informations, consultez Création d'applications Windows.
Le projet PassingDataBetweenForms est créé et ajouté à l'Explorateur de solutions.
Création de la source de données
Pour créer la source de données
Dans le menu Données, cliquez sur Afficher les sources de données.
Dans la fenêtre Sources de données, sélectionnez Ajouter une nouvelle source de données pour démarrer l'Assistant Configuration de source de données.
Sélectionnez Base de données dans la page Choisir un type de source de données, puis cliquez sur Suivant.
Dans la page Choisir un modèle de base de données, vérifiez que le paramètre Dataset est défini, puis cliquez sur Suivant.
Sur la page Choisir votre connexion de données, effectuez l'une des opérations suivantes :
Si une connexion de données à l'exemple de base de données Northwind est disponible dans la liste déroulante, sélectionnez-la.
ou
Sélectionnez Nouvelle connexion pour afficher la boîte de dialogue Ajouter/Modifier la connexion. Pour plus d'informations, consultez Ajouter/Modifier une connexion, boîte de dialogue (Général).
Si votre base de données exige un mot de passe et si l'option d'ajout des données sensibles est activée, sélectionnez l'option, puis cliquez sur Suivant.
Cliquez sur Suivant dans la page Enregistrer la chaîne de connexion dans le fichier de configuration de l'application.
Développez le nœud Tables dans la page Choisir vos objets de base de données.
Sélectionnez les tables Customers et Orders, puis cliquez sur Terminer.
NorthwindDataSet est ajouté à votre projet et les tables Customers et Orders apparaissent dans la fenêtre Sources de données.
Création du premier formulaire (Form1)
Vous pouvez créer une grille liée aux données (contrôle DataGridView) en faisant glisser le nœud Customers depuis la fenêtre Sources de données jusqu'au formulaire.
Pour créer une grille liée aux données sur le formulaire
Faites glisser le nœud Customers depuis la fenêtre Sources de données vers Form1.
Un DataGridView et une barre d'outils (BindingNavigator) pour parcourir les enregistrements apparaissent sur Form1. Un NorthwindDataSet, un CustomersTableAdapter, un BindingSource et un BindingNavigator apparaissent dans la barre d'état des composants.
Création du deuxième formulaire (Form2)
Pour créer un deuxième formulaire auquel passer les données
Dans le menu Projet, choisissez Ajouter un formulaire Windows.
Conservez le nom par défaut de Form2 et cliquez sur Ajoutez.
Faites glisser le nœud Orders depuis la fenêtre Sources de données vers Form2.
Un DataGridView et une barre d'outils (BindingNavigator) pour parcourir les enregistrements apparaissent sur Form2. Un NorthwindDataSet, un CustomersTableAdapter, un BindingSource et un BindingNavigator apparaissent dans la barre d'état des composants.
Supprimez OrdersBindingNavigator de la barre d'état des composants.
OrdersBindingNavigator disparaît de Form2.
Ajout d'une requête TableAdapter à Form2 pour charger les commandes du client sélectionné sur Form1
Pour créer une requête TableAdapter
Double-cliquez sur le fichier NorthwindDataSet.xsd dans l'Explorateur de solutions.
Cliquez avec le bouton droit sur le OrdersTableAdapter et sélectionnez Ajouter une requête.
Conservez l'option par défaut (Utiliser des instructions SQL), puis cliquez sur Suivant.
Conservez l'option par défaut (SELECT qui retourne des lignes), puis cliquez sur Suivant.
Ajoutez une clause WHERE à la requête pour retourner les commandes (Orders) en se basant sur le CustomerID. La requête doit se présenter sous la forme suivante :
SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM Orders WHERE CustomerID = @CustomerID
Notes
Vérifiez si la syntaxe des paramètres est correcte pour votre base de données. Par exemple, dans Microsoft Access, la clause WHERE se présente comme suit : WHERE CustomerID = ?.
Cliquez sur Suivant.
Dans Remplir un DataTable, tapez FillByCustomerID comme Nom de la méthode.
Désactivez l'option Retourner un DataTable, puis cliquez sur Suivant.
Cliquez sur Terminer.
Création sur Form2 d'une méthode à laquelle passer des données
Pour créer une méthode à laquelle passer des données
Cliquez avec le bouton droit sur Form2 et sélectionnez Afficher le code pour ouvrir Form2 dans l'Éditeur de code.
Ajoutez le code suivant à Form2 après la méthode Form2_Load :
Friend Sub LoadOrders(ByVal CustomerID As String) OrdersTableAdapter.FillByCustomerID(NorthwindDataSet.Orders, CustomerID) End Sub
internal void LoadOrders(String CustomerID) { ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID); }
Création sur Form1 d'une méthode permettant de passer des données et d'afficher Form2
Pour créer une méthode permettant de passer des données à Form2
Dans Form1, cliquez avec le bouton droit sur la grille de données Client, puis cliquez sur Propriétés.
Dans la fenêtre Propriétés, cliquez sur Événements.
Double-cliquez sur l'événement CellDoubleClick.
L'éditeur de code apparaît.
Mettez à jour la définition de méthode pour qu'elle corresponde à l'exemple suivant :
Private Sub CustomersDataGridView_DoubleClick() Handles CustomersDataGridView.DoubleClick Dim SelectedRowView As Data.DataRowView Dim SelectedRow As NorthwindDataSet.CustomersRow SelectedRowView = CType(CustomersBindingSource.Current, System.Data.DataRowView) SelectedRow = CType(SelectedRowView.Row, NorthwindDataSet.CustomersRow) Dim OrdersForm As New Form2 OrdersForm.LoadOrders(SelectedRow.CustomerID) OrdersForm.Show() End Sub
private void customersDataGridView_DoubleClick(object sender, EventArgs e) { System.Data.DataRowView SelectedRowView; NorthwindDataSet.CustomersRow SelectedRow; SelectedRowView = (System.Data.DataRowView)customersBindingSource.Current; SelectedRow = (NorthwindDataSet.CustomersRow)SelectedRowView.Row; Form2 OrdersForm = new Form2(); OrdersForm.LoadOrders(SelectedRow.CustomerID); OrdersForm.Show(); }
Exécution de l'application
Pour exécuter l'application
Appuyez sur F5 pour exécuter l'application.
Double-cliquez sur un enregistrement de client dans Form1 pour ouvrir Form2 avec les commandes de ce client.
Étapes suivantes
Selon les exigences de votre application, vous pouvez exécuter différentes étapes après le passage de données entre formulaires. Vous pouvez apporter à cette procédure pas à pas les améliorations suivantes :
Modification du groupe de données pour ajouter ou supprimer des objets de base de données. Pour plus d'informations, consultez Comment : modifier un groupe de données.
Ajout des fonctionnalités pour enregistrer des données dans la base de données. Pour plus d'informations, consultez Comment : enregistrer les modifications apportées à un groupe de données dans une base de données.
Voir aussi
Concepts
Liaison de contrôles Windows Forms à des données dans Visual Studio
Vue d'ensemble des sources de données
Vue d'ensemble de TableAdapter
Liaison de contrôles à des données dans Visual Studio
Autres ressources
Procédures pas à pas relatives aux données
Connexion aux données dans Visual Studio
Préparation de votre application pour recevoir des données
Extraction de données dans votre application
Modification des données dans votre application
Historique des modifications
Date |
Historique |
Motif |
---|---|---|
Mars 2011 |
Erreurs éliminées dans l'exemple de code. |
Commentaires client. |