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.
Dans cette procédure pas à pas, vous créez une application WPF qui contient des contrôles liés aux données. Les contrôles sont liés aux enregistrements de produit encapsulés dans un jeu de données. Vous ajoutez également des boutons pour parcourir les produits et enregistrer les modifications apportées aux enregistrements de produits.
Cette procédure pas à pas présente les tâches suivantes :
Création d’une application WPF et d’un jeu de données générés à partir de données dans l’exemple de base de données AdventureWorksLT.
Création d’un jeu de contrôles liés aux données en faisant glisser une table de données de la fenêtre Sources de données vers une fenêtre du Concepteur WPF.
Création de boutons permettant de parcourir les enregistrements de produit en avant et en arrière.
Création d’un bouton qui enregistre les modifications apportées par les utilisateurs aux enregistrements de produit dans la table de données et la source de données sous-jacente.
Remarque
Les instructions de cet article illustrent la version la plus récente de l’expérience de développement interactive (IDE) disponible dans Visual Studio. Votre ordinateur peut afficher différents noms ou emplacements pour certains des éléments de l’interface utilisateur. Vous utilisez peut-être une version différente de Visual Studio ou des paramètres d’environnement différents. Pour plus d’informations, consultez Personnaliser l’IDE.
Conditions préalables
Vous avez besoin des composants suivants pour effectuer cette procédure pas à pas :
Pour suivre ce tutoriel, vous avez besoin des charges de travail de développement et de traitement de données.NET desktop installées dans Visual Studio. Pour les installer, ouvrez visual Studio Installer et choisissez Modifier (ou Plus>Modifier) en regard de la version de Visual Studio que vous souhaitez modifier. Consultez Modifier Visual Studio.
Accès à une instance en cours d’exécution de SQL Server ou DE SQL Server Express avec l’exemple de base de données AdventureWorks Light (AdventureWorksLT) qui lui est attachée. Pour télécharger la base de données, consultez les exemples de bases de données AdventureWorks.
Une connaissance préalable des concepts suivants est également utile, mais elle n’est pas nécessaire pour effectuer la procédure pas à pas :
Datasets et TableAdapters. Pour plus d’informations, consultez Outils de jeu de données dans Visual Studio et TableAdapters.
Liaison de données WPF. Pour plus d’informations, consultez Vue d’ensemble de la liaison de données.
Créer le projet
Créez un nouveau projet WPF pour afficher les enregistrements de produits.
Ouvrez Visual Studio.
Dans la fenêtre de démarrage, choisissez Créer un projet.
Recherchez le modèle de projet d’application WPF C# et suivez les étapes pour créer le projet, en nommant le projet AdventureWorksProductsEditor.
Visual Studio crée le projet AdventureWorksProductsEditor.
Créer un jeu de données pour l’application
Avant de pouvoir créer des contrôles liés aux données, vous devez définir un modèle de données pour votre application et l’ajouter à la fenêtre Sources de données . Dans cette procédure pas à pas, vous créez un jeu de données à utiliser comme modèle de données.
Dans le menu Données , cliquez sur Afficher les sources de données.
La fenêtre Sources de données s’ouvre.
Dans la fenêtre Sources de Données, cliquez sur Ajouter une nouvelle source de données.
L’Assistant Configuration de source de données s’ouvre.
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 , sélectionnez Dataset, puis sélectionnez Suivant.
Dans la page Choisir votre connexion de données , sélectionnez l’une des options suivantes :
Si une connexion de données à l’exemple de base de données AdventureWorksLT est disponible dans la liste déroulante, sélectionnez-la, puis sélectionnez Suivant.
Cliquez sur Nouvelle connexion, puis créez une connexion à la base de données AdventureWorksLT.
Dans la page Enregistrer la chaîne de connexion dans la page Configurer le fichier de configuration de l’application , activez la case Oui, enregistrez la connexion sous forme de case, puis sélectionnez Suivant.
Dans la page Choisir vos objets de base de données, développez Tables, puis sélectionnez la table Product (SalesLT).
Cliquez sur Terminer.
Visual Studio ajoute un nouveau
AdventureWorksLTDataSet.xsdfichier au projet et ajoute un élément AdventureWorksLTDataSet correspondant à la fenêtre Sources de données . LeAdventureWorksLTDataSet.xsdfichier définit un jeu de données typé nomméAdventureWorksLTDataSetet un TableAdapter nomméProductTableAdapter. Plus loin dans ce guide étape par étape, vous utiliserez leProductTableAdapterpour remplir le jeu de données avec des données et enregistrer les modifications dans la base de données.Construisez le projet.
Modifier la méthode de remplissage par défaut de TableAdapter
Pour remplir le jeu de données avec des données, utilisez la Fill méthode du ProductTableAdapter. Par défaut, la méthode Fill remplit le ProductDataTable dans le AdventureWorksLTDataSet avec toutes les lignes de données de la table Product. Vous pouvez modifier cette méthode pour retourner uniquement un sous-ensemble des lignes. Pour cette procédure pas à pas, modifiez la Fill méthode pour renvoyer uniquement les lignes des produits qui ont des photos.
Dans l’Explorateur de solutions, double-cliquez sur le fichier AdventureWorksLTDataSet.xsd .
Le Concepteur de DataSet s'ouvre.
Dans le concepteur, cliquez avec le bouton droit sur la requête Fill, GetData() et sélectionnez Configurer.
L’Assistant Configuration de TableAdapter s’ouvre.
Dans la page Entrer une instruction SQL , ajoutez la clause suivante
WHEREaprès l’instructionSELECTdans la zone de texte.WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'Cliquez sur Terminer.
Définir l’interface utilisateur
Ajoutez plusieurs boutons à la fenêtre en modifiant le code XAML dans le Concepteur WPF. Plus loin dans cette procédure pas à pas, vous allez ajouter du code qui permet aux utilisateurs de parcourir et d’enregistrer les modifications apportées aux enregistrements de produits à l’aide de ces boutons.
Dans l’Explorateur de solutions, double-cliquez sur MainWindow.xaml.
La fenêtre s’ouvre dans le Concepteur WPF.
Dans la vue XAML du concepteur, ajoutez le code suivant entre les
<Grid>balises :<Grid.RowDefinitions> <RowDefinition Height="75" /> <RowDefinition Height="625" /> </Grid.RowDefinitions> <Button HorizontalAlignment="Left" Margin="22,20,0,24" Name="backButton" Width="75"><</Button> <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">></Button> <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>Construisez le projet.
Créer des contrôles liés aux données
Créez des contrôles qui affichent les enregistrements client en faisant glisser la Product table de la fenêtre Sources de données vers le Concepteur WPF.
Dans la fenêtre Sources de données , cliquez sur le menu déroulant de la liste déroulante du nœud Produit , puis sélectionnez Détails.
Développez le nœud Product .
Pour cet exemple, certains champs ne s’affichent pas. Cliquez donc sur le menu déroulant en regard des nœuds suivants, puis sélectionnez Aucun :
ID de Catégorie de Produit
ProductModelID
ThumbnailPhotoFileName
rowguid
Date de modification
Cliquez sur le menu déroulant en regard du nœud ThumbNailPhoto , puis sélectionnez Image.
Remarque
Par défaut, les éléments de la fenêtre Sources de données qui représentent les images ont leur contrôle par défaut défini sur None. Cela est dû au fait que les images sont stockées sous forme de tableaux d’octets dans des bases de données, et que les tableaux d’octets peuvent contenir n’importe quoi d’un tableau simple d’octets au fichier exécutable d’une grande application.
Dans la fenêtre Sources de données , faites glisser le nœud Product vers la ligne de grille sous la ligne qui contient les boutons.
Visual Studio génère du code XAML qui définit un ensemble de contrôles liés aux données de la table Products . Il génère également du code qui charge les données. Pour plus d’informations sur le code et le code XAML générés, consultez Lier des contrôles WPF aux données dans Visual Studio.
Dans le concepteur, cliquez sur la zone de texte à côté de l’étiquette Identifiant de produit.
Dans la fenêtre Propriétés , cochez la case en regard de la propriété IsReadOnly .
Parcourir les fiches produit
Ajoutez du code qui permet aux utilisateurs de parcourir les enregistrements de produits à l’aide des boutons < et >.
Dans le concepteur, double-cliquez sur le bouton < de la fenêtre.
Visual Studio ouvre le fichier code-behind et crée un gestionnaire d’événements
backButton_Clickpour l’événement Click .Modifiez le
Window_Loadedgestionnaire d’événements, ainsi leProductViewSource,AdventureWorksLTDataSetetAdventureWorksLTDataSetProductTableAdaptersont en dehors de la méthode et accessibles à l’intégralité du formulaire. Déclarez uniquement ces éléments pour être globaux dans le formulaire et affectez-les dans leWindow_Loadedgestionnaire d’événements comme suit :private AdventureWorksProductsEditor.AdventureWorksLTDataSet AdventureWorksLTDataSet; private AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter adventureWorksLTDataSetProductTableAdapter; private System.Windows.Data.CollectionViewSource productViewSource; private void Window_Loaded(object sender, RoutedEventArgs e) { AdventureWorksLTDataSet = ((AdventureWorksProductsEditor.AdventureWorksLTDataSet)(this.FindResource("adventureWorksLTDataSet"))); // Load data into the table Product. You can modify this code as needed. adventureWorksLTDataSetProductTableAdapter = new AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter(); adventureWorksLTDataSetProductTableAdapter.Fill(AdventureWorksLTDataSet.Product); productViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("productViewSource"))); productViewSource.View.MoveCurrentToFirst(); }Ajoutez le code suivant au gestionnaire d’événements
backButton_Click:Revenez dans le concepteur et double-cliquez sur le bouton >.
Ajoutez le code suivant au gestionnaire d’événements
nextButton_Click:
Enregistrer les modifications apportées aux enregistrements de produit
Ajoutez du code qui permet aux utilisateurs d’enregistrer les modifications apportées aux enregistrements de produits à l’aide du bouton Enregistrer les modifications .
Dans le concepteur, double-cliquez sur le bouton Enregistrer les modifications .
Visual Studio ouvre le fichier code-behind et crée un gestionnaire d’événements
saveButton_Clickpour l’événement Click .Ajoutez le code suivant au gestionnaire d’événements
saveButton_Click:Remarque
Cet exemple utilise la
Saveméthode de l’objetTableAdapterpour enregistrer les modifications. Cela convient dans cette procédure pas à pas, car une seule table de données est modifiée. Si vous devez enregistrer des modifications dans plusieurs tables de données, vous pouvez aussi utiliser la méthodeUpdateAllque Visual Studio génère avec votre jeu de données. Pour plus d’informations, consultez TableAdapters.
Tester l’application
Générez et exécutez l’application. Vérifiez que vous pouvez afficher et mettre à jour les enregistrements de produit.
Appuyez sur F5.
L’application génère et s’exécute. Vérifiez les éléments suivants :
Les zones de texte affichent les données du premier enregistrement de produit qui a une photo. Ce produit a l’ID de produit 713 et le nom Long-Sleeve Logo Jersey, S.
Vous pouvez cliquer sur les boutons > ou < pour naviguer à travers d'autres enregistrements de produits.
Dans l’un des enregistrements de produit, modifiez la valeur Taille , puis sélectionnez Enregistrer les modifications.
Fermez l’application, puis redémarrez l’application en appuyant sur F5 dans Visual Studio.
Accédez à l’enregistrement de produit que vous avez modifié et vérifiez que la modification est persistante.
Fermez l’application.
Étapes suivantes
Une fois cette procédure pas à pas terminée, vous pouvez essayer les tâches associées suivantes :
Découvrez comment utiliser la fenêtre Sources de données dans Visual Studio pour lier des contrôles WPF à d’autres types de sources de données. Pour plus d’informations, consultez Lier des contrôles WPF à un service de données WCF.
Découvrez comment utiliser la fenêtre Sources de données dans Visual Studio pour afficher les données associées (c’est-à-dire les données d’une relation parent-enfant) dans les contrôles WPF. Pour plus d’informations, consultez Procédure pas à pas : afficher les données associées dans une application WPF.
Contenu connexe
- Lier des contrôles WPF aux données dans Visual Studio
- Outils de gestion de données dans Visual Studio
- Vue d’ensemble de la liaison de données