Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.
Ce tutoriel fournit des instructions pas à pas pour transmettre des données d’un formulaire à un autre. En utilisant les tables Clients et Commandes de l’exemple de base de données Northwind, un formulaire permet aux utilisateurs de sélectionner un client et un deuxième formulaire affiche les commandes du client sélectionné. Ce tutoriel montre comment créer une méthode sur le deuxième formulaire qui reçoit des données du premier formulaire.
Dans ce tutoriel, vous effectuez les tâches suivantes :
- Créez un projet d’application Windows Forms (.NET Framework).
- Créez et configurez un jeu de données à l’aide de l’Assistant Configuration de la source de données.
- Sélectionnez le contrôle à créer sur le formulaire lorsque vous faites glisser des éléments à partir de la fenêtre Sources de données . Pour plus d’informations, consultez Définir le contrôle à créer lors du glisser à partir de la fenêtre Sources de données.
- Créez un contrôle lié aux données en faisant glisser des éléments de la fenêtre Sources de données vers un formulaire.
- Créez un deuxième formulaire avec une grille qui affiche les données.
- Créez une
TableAdapterrequête pour récupérer des commandes pour un client spécifique. - Passez des données entre les formulaires.
Remarque
Ce tutoriel montre une seule façon de transmettre des données entre les formulaires. Il existe d’autres options pour transmettre des données à un formulaire, telles que la création d’un deuxième constructeur pour recevoir des données, ou la création d’une propriété publique qui peut être définie avec des données du premier formulaire.
Conditions préalables
Les charges de travail de développement .NET desktop et de stockage et de traitement de données installées dans Visual Studio. Pour les installer, ouvrez Visual Studio Installer et choisissez Modifier ou Plus>Modifier, à côté de la version de Visual Studio que vous souhaitez utiliser. Pour plus d’informations, consultez Modifier Visual Studio.
SQL Server Express 2019 LocalDB installé à partir de la page de téléchargements SQL Server ou via Visual Studio Installer dans le cadre de la charge de travail de stockage et de traitement des données .
L’exemple de base de données Northwind, créé en procédant comme suit :
Dans Visual Studio, ouvrez la fenêtre explorateur d’objets SQL Server en la sélectionnant dans le menu Affichage . L’Explorateur d’objets SQL Server est installé dans le cadre de la charge de travail de stockage et de traitement des données .
Développez le nœud SQL Server , cliquez avec le bouton droit sur votre instance LocalDB, puis sélectionnez Nouvelle requête pour ouvrir une fenêtre d’éditeur de requête.
Copiez le script Northwind Transact-SQL dans votre presse-papiers. Ce script T-SQL crée la base de données Northwind et le remplit avec des données.
Collez le script T-SQL dans l’éditeur de requête, puis sélectionnez Exécuter en haut de la fenêtre pour créer la base de données Northwind.
Créer le projet d’application Windows Forms
Dans Visual Studio, dans le menu Fichier, sélectionnez Nouveau>Projet.
Sélectionnez C# ou Visual Basic dans la liste déroulante Toutes les langues , Windows dans la liste déroulante Toutes les plateformes et Desktop dans la liste tous les types de projets .
Sélectionnez Application Windows Forms (.NET Framework) dans la liste des modèles de projet, puis sélectionnez Suivant.
Nommez le projet PassingDataBetweenForms, sélectionnez Suivant, puis sélectionnez Créer.
Le projet PassingDataBetweenForms est créé et ajouté à l’Explorateur de solutions. La vue du concepteur de Form1 apparaît dans l’éditeur.
Créer la source de données
Ouvrez la fenêtre Sources de données en sélectionnant Project>Add New Data Source dans le menu Visual Studio.
Dans la fenêtre Sources de données , sélectionnez Ajouter une nouvelle source de données pour démarrer l’Assistant Configuration de la source de données .
Dans la page Choisir un type de source de données , sélectionnez Base de données, puis Sélectionnez Suivant.
Dans la page Choisir un modèle de base de données , vérifiez que le jeu de données est spécifié et sélectionnez Suivant.
Dans la page Choisir votre connexion de données , si une connexion de données à l’exemple de base de données Northwind est déjà disponible, sélectionnez-la et passez à l’étape Choisir vos objets de base de données . Sinon, sélectionnez Nouvelle connexion.
Dans l’écran Choisir une source de données , sélectionnez Fichier de base de données Microsoft SQL Server, puis continuez.
Dans l’écran Ajouter une connexion , sélectionnez Parcourir, recherchez et sélectionnez le fichier northwnd.mdf , puis sélectionnez Ouvrir.
Sélectionnez l’authentification Windows, ou sélectionnez Authentification SQL Server et fournissez un nom d’utilisateur et un mot de passe pour accéder à la base de données.
Sélectionnez Tester la connexion pour tester la connexion. Une fois la connexion établie, sélectionnez OK.
Dans la page Choisir votre connexion de données , vérifiez que le fichier de base de données s’affiche et sélectionnez Suivant.
Sélectionnez Non à la question contextuelle Voulez-vous copier le fichier dans votre projet et modifier la connexion ?
Dans la page Enregistrer la chaîne de connexion dans la page fichier configuration de l’application , sélectionnez Oui. Nommez la connexion NorthwindConnectionString, puis sélectionnez Suivant.
Dans la page Choisir vos objets de base de données , développez le nœud Tables , sélectionnez les tables Customers and Orders , nommez le jeu de données NorthwindDataSet, puis sélectionnez Terminer.
NorthwindDataSet est ajouté à votre projet, et les tables Customers et Orders apparaissent dans la fenêtre Sources de données.
Remplir le premier formulaire
Pour créer une grille liée aux données, faites glisser le nœud Clients de la fenêtre Sources de données vers Form1.
Un DataGridView contrôle et une bande d’outils BindingNavigator permettant de naviguer dans les enregistrements s’affichent sur Form1. NorthwindDataSet,
CustomersTableAdapter, BindingSourceet BindingNavigator apparaît dans la barre d’état du composant.
Créer le deuxième formulaire
Créez un deuxième formulaire pour transmettre des données.
Dans le menu Projet , choisissez Ajouter un formulaire (Windows Forms).
Laissez le nom par défaut de Form2, puis sélectionnez Ajouter.
Faites glisser le nœud Commandes principal de la fenêtre Sources de données vers Form2.
Une DataGridView bande d’outils et une BindingNavigator bande d’outils permettant de naviguer dans les enregistrements s’affichent sur Form2. NorthwindDataSet,
CustomersTableAdapter, BindingSourceet BindingNavigator apparaît dans la barre d’état du composant.Supprimez ordersBindingNavigator de la barre d’état du composant. BindingNavigator disparaît de Form2.
Ajouter une requête TableAdapter
Ajoutez une TableAdapter requête à Form2 qui charge les commandes pour le client sélectionné sur Form1.
Double-cliquez sur le fichier NorthwindDataSet.xsd dans l’Explorateur de solutions.
Cliquez avec le bouton droit sur OrdersTableAdapter dans la table Orders , puis sélectionnez Ajouter>une requête.
Laissez l’option par défaut utiliser les instructions SQL et sélectionnez Suivant.
Laissez l’option par défaut de SELECT qui retourne des lignes et sélectionnez Suivant.
Dans Quelles données la table doit charger, pour retourner
Ordersen fonction duCustomerID, ajoutez uneWHEREclause à la fin de la requête. La requête finale doit ressembler au code suivant :SELECT OrderID, CustomerID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM Orders WHERE CustomerID = @CustomerIDRemarque
Utilisez la syntaxe de paramètre correcte pour votre base de données. Par exemple, dans Microsoft Access, la clause
WHEREressemblerait àWHERE CustomerID = ?.Cliquez sur Suivant.
Dans l’écran Choisir les méthodes à générer , sélectionnez Remplir un DataTable et entrez FillByCustomerID.
Désélectionnez l’option Retourner une table de données , puis sélectionnez Terminer.
Créer une méthode sur Form2 pour transmettre des données à
Cliquez avec le bouton droit dans Form2 et sélectionnez Afficher le code pour ouvrir le code Form2 dans l’éditeur.
Dans le code Form2 , supprimez le contenu de la
Form2_Loadméthode et ajoutez le code suivant après laForm2_Loadméthode :
internal void LoadOrders(String CustomerID)
{
ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID);
}
Créer une méthode sur Form1 pour transmettre des données et afficher Form2
Dans la vue Concepteur de Form1, cliquez avec le bouton droit sur la grille des données client, puis sélectionnez Propriétés.
Dans la fenêtre Propriétés , sélectionnez l’icône Événements dans la barre d’outils supérieure.
Double-cliquez sur l’événement DoubleClick pour ouvrir l’éditeur de code.
Dans l’éditeur de code, mettez à jour la définition de méthode pour qu’elle corresponde à l’exemple suivant :
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écuter et tester l’application
Appuyez sur F5 pour exécuter l’application.
Dans l’application, double-cliquez sur un enregistrement client dans Form1 pour ouvrir Form2 avec les commandes de ce client.
Étapes suivantes
Selon vos besoins en matière d’application, vous pouvez effectuer plusieurs étapes après avoir transmis des données entre des formulaires. Voici quelques améliorations que vous pouvez apporter à ce didacticiel :
Modification du jeu de données pour ajouter ou supprimer des objets de base de données. Pour plus d’informations, consultez Créer et configurer des jeux de données.
Ajout de fonctionnalités pour enregistrer des données dans la base de données. Pour plus d’informations, consultez Enregistrer les données dans la base de données.