Exporter (0) Imprimer
Développer tout

Procédure pas à pas : accès simple aux données d'un Windows Form

Visual Studio .NET 2003

L'un des scénarios les plus courants dans le développement d'application consiste à afficher des données dans un formulaire. Cette procédure pas à pas illustre un Windows Form simple qui affiche des données issues d'une unique table dans une grille de données. La grille obtenue est modifiable, et vous avez en outre la possibilité de modifier les données et de mettre à jour la base de données. Bien que son résultat ne soit pas complexe, cette procédure pas à pas illustre de nombreuses procédures de base que vous utiliserez pour accéder aux données à partir des formulaires.

Pour exécuter cette procédure pas à pas, vous devrez :

  • Accéder à un serveur sur lequel est installé l'exemple de base de données SQL Server Pubs.

La procédure est subdivisée en plusieurs petites parties :

  • Création du Windows Form.
  • Création et configuration du groupe de données auquel vous allez lier le formulaire. Cette opération comprend la création d'une requête qui remplit le groupe de données à partir de la base de données.
  • Ajout du contrôle DataGrid au formulaire et liaison de ce contrôle aux données.
  • Ajout de code pour remplir le groupe de données.
  • Ajout de code qui renvoie les modifications du groupe de données à la base de données.

Une fois que la procédure est terminée, vous obtenez un formulaire semblable à celui-ci :

Création du projet et du formulaire

La première étape consiste à créer un Windows Form.

Pour créer le projet et le formulaire

  1. Si une solution est déjà ouverte, sélectionnez Fermer la solution dans le menu Fichier.
    Remarque   Dans les projets de production, vous aurez très souvent plusieurs projets dans une même solution. Dans cette procédure, toutefois, vous devez fermer toutes les solutions ouvertes et en créer une avec le projet afin qu'il n'y ait aucune interférence entre ce que vous allez faire ici et d'éventuels formulaires ou groupes de données existants.
  2. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
  3. Dans le volet Types de projets, sélectionnez Projets Visual Basic, Projets Visual C# ou Projets Visual C++.
  4. Dans le volet Modèles, sélectionnez Application Windows pour les projets Visual Basic et Visual C#, ou Application Windows Forms (.NET) pour les projets Visual C++.
  5. Assignez au projet un nom unique et conforme aux conventions d'affectation de noms que vous utilisez. Par exemple, vous pouvez donner à ce projet le nom Walkthrough_Simple1.
  6. Une fois que vous avez nommé le projet et spécifié une nouvelle solution, cliquez sur OK.

    Visual Studio crée un projet et affiche un nouveau formulaire dans Windows Form Designer.

Création et configuration d'un groupe de données

Comme pour la plupart des scénarios d'accès aux données dans des applications Windows Forms, vous utiliserez un groupe de données. Un groupe de données est un conteneur (un cache) qui renferme les enregistrements que vous souhaitez utiliser.

Remarque   L'utilisation d'un groupe de données est l'une des options possibles pour accéder à des données et ne constitue pas la solution optimale dans certaines situations. Néanmoins, cette approche est généralement à préconiser avec les applications Windows Forms. Elle est utilisée dans cette procédure pas à pas. Pour plus d'informations, consultez Recommandations relatives aux stratégies d'accès aux données.

Dans cette procédure, vous ajouterez un groupe de données au formulaire. Toutefois, comme le groupe de données n'existe pas encore, vous ne l'ajouterez pas manuellement au formulaire. À la place, vous exécuterez la procédure suivante :

  • Créez un adaptateur de données à l'aide d'un Assistant. L'adaptateur contient des instructions SQL servant à lire et écrire des informations dans la base de données. L'Assistant vous aide à définir les instructions SQL dont vous avez besoin. Au besoin, l'Assistant crée également une connexion à la base de données.
  • Générez le schéma de groupe de données. Durant ce processus, Visual Studio créera une nouvelle classe DataSet typée en se basant sur les tables et les colonnes auxquelles vous accédez. Lorsque vous générez la classe DataSet, vous en ajoutez également une instance au formulaire.

Il est important que vous suiviez toutes les procédures présentées dans cette section. Sinon votre formulaire ne disposera pas du groupe de données que vous devrez utiliser dans les parties suivantes de la procédure pas à pas.

Pour plus d'informations sur les adaptateurs de données, consultez Introduction aux adaptateurs de données. Pour plus d'informations sur les groupes de données, consultez Introduction aux groupes de données.

Configuration d'une connexion de données et d'un adaptateur de données

Pour commencer, créez un adaptateur de données qui contient l'instruction SQL qui sera utilisée ultérieurement pour remplir le groupe de données. Durant ce processus, vous définissez une connexion pour accéder à une base de données. Vous configurez l'adaptateur de données à l'aide d'un Assistant, ce qui facilite la création des instructions SQL nécessaires pour accéder aux données.

Remarque   Lorsque l'Assistant se termine, vous devez passer à la section suivante afin de générer un groupe de données et de compléter la partie relative à l'accès aux données de votre formulaire.
Remarque sur la sécurité   Le stockage des détails de la chaîne de connexion (nom du serveur, de l'utilisateur et mot de passe, notamment) peut avoir des conséquences sur la sécurité de votre application. L'utilisation de la sécurité intégrée de Windows constitue un moyen plus sûr de contrôler l'accès à une base de données. Pour plus d'informations, consultez Sécurité de base de données.

Pour créer la connexion de données et l'adaptateur de données

  1. Sous l'onglet Données de la Boîte à outils, faites glisser un objet OleDbDataAdapter jusqu'au formulaire.
    Remarque   Vous pouvez aussi utiliser la commande SqlDataAdapter qui est optimisée pour SQL Server 7.0 ou version ultérieure. Dans cette procédure pas à pas, vous utilisez l'objet OleDbDataAdapter, car il est plus générique et permet à ADO.NET d'accéder à n'importe quelle source de données compatible OLE DB.

    L'Assistant Configuration de carte de données démarre et vous aidera à créer la connexion et l'adaptateur.

  2. Dans l'Assistant, effectuez les opérations suivantes :
    1. Dans le deuxième volet, créez ou choisissez une connexion pointant vers la base de données Pubs SQL Server.
    2. Dans le troisième volet, spécifiez que vous souhaitez utiliser une instruction SQL pour accéder à la base de données.
    3. Dans le quatrième volet, créez l'instruction SQL suivante :
      SELECT au_id, au_lname, au_fname, city, state, phone, contract
      FROM authors
      

      Pour obtenir de l'aide lors de la génération de l'instruction SQL, cliquez sur Générateur de requêtes pour lancer ce générateur.

      Remarque   Dans cette procédure pas à pas, vous remplirez le groupe de données avec toutes les lignes de la table Authors. Dans les applications de production, vous optimisez généralement l'accès aux données en créant une requête qui retourne uniquement les colonnes et les lignes dont vous avez besoin. Pour obtenir un exemple, consultez Procédure pas à pas : affichage des données dans un Windows Form à l'aide d'une requête paramétrée.
  3. Cliquez sur Terminer pour interrompre l'Assistant.

    À la fin de l'exécution de l'Assistant, vous disposez d'une connexion (OleDbConnection1 dans Visual Basic ou oleDbConnection1 dans Visual C# ou Visual C++) contenant des informations sur la méthode d'accès à votre base de données. Vous disposez également d'un adaptateur de données (OleDbDataAdapter1 dans Visual Basic ou oleDbDataAdapter1 dans Visual C# ou Visual C++) qui contient une requête définissant la table et les colonnes de la base de données auxquelles vous voulez accéder.

Lorsque l'Assistant se termine, générez le groupe de données en vous basant sur la requête SQL que vous avez créée durant cette procédure. Pour plus d'informations, consultez la section suivante.

Création du groupe de données

Une fois que vous avez créé les moyens de vous connecter à la base de données et spécifié les informations que vous souhaitez (via la commande SQL de l'adaptateur de données), vous pouvez demander à Visual Studio de créer un groupe de données. Visual Studio peut générer automatiquement le groupe de données en se basant sur la requête que vous avez spécifiée pour l'adaptateur de données. Le groupe de données est une instance de la classe DataSet basée sur un schéma XML correspondant (fichier .xsd) qui décrit les éléments de la classe (table, colonnes et contraintes). Pour plus d'informations sur la relation qui unit les groupes de données et les schémas, consultez Introduction à l'accès aux données avec ADO.NET.

Pour générer un groupe de données

  1. Dans le menu Données, choisissez Générer un groupe de données.
    Conseil   Si vous ne voyez pas le menu Données, cliquez sur le formulaire ; le formulaire doit avoir le focus pour que ce menu apparaisse.

    La boîte de dialogue Générer le groupe de données s'affiche.

  2. Sélectionnez l'option Nouveau et attribuez au groupe de données le nom dsAuthors.

    Dans la liste affichée sous Choisir les tables à ajouter au groupe de données, la table Authors doit être sélectionnée.

  3. Vérifiez si la case à cocher Ajouter ce groupe de données au concepteur est activée, puis cliquez sur OK.

    Visual Studio génère une classe DataSet typée (dsAuthors) et un schéma définissant le groupe de données. Le nouveau schéma (dsAuthors.xsd) s'affiche dans l'Explorateur de solutions.

    Conseil   Dans l'Explorateur de solutions, cliquez sur Afficher tous les fichiers et vous constatez que le fichier de schéma possède un fichier .vb ou .cs dépendant qui contient le code qui définit votre nouvelle classe DataSet.

    Enfin, Visual Studio ajoute une instance de la nouvelle classe DataSet (DsAuthors1 ou dsAuthors1) au formulaire.

À ce stade, vous avez installé tout ce dont vous avez besoin pour extraire des informations d'une base de données et les placer dans un groupe de données. Vous êtes prêt à créer un formulaire qui affichera les données.

Ajout d'un contrôle DataGrid pour l'affichage des données

Dans cette procédure pas à pas, vous ajouterez un seul contrôle (contrôle DataGrid) pouvant afficher simultanément tous les enregistrements du groupe de données. Une autre solution consiste à utiliser des contrôles individuels, tels que des zones de texte pour afficher un seul enregistrement à la fois. Cette méthode exige cependant que vous ajoutiez des outils de navigation au formulaire. Pour plus de simplicité, vous utiliserez donc une grille de données.

Remarque   Pour obtenir un exemple sur l'utilisation de zones de texte individuelles pour l'affichage des enregistrements d'un groupe de données, consultez Procédure pas à pas : affichage des données dans un Windows Form à l'aide d'une requête paramétrée.

La grille de données doit être liée au groupe de données pour afficher les données.

Pour ajouter un contrôle DataGrid lié au formulaire

  1. Si vous ne l'avez pas encore fait, basculez dans le Concepteur de formulaires en cliquant sur l'onglet situé en haut de la fenêtre active.
  2. Sous l'onglet Windows Forms de la Boîte à outils, faites glisser un contrôle DataGrid jusqu'au formulaire.
  3. Appuyez sur F4 pour afficher la fenêtre Propriétés.
  4. Dans la propriété DataSource, sélectionnez DsAuthors1 (ou dsAuthors1) comme source de données. Ne sélectionnez pas DsAuthors1.Authors (ou dsAuthors1.Authors).
  5. Dans la propriété DataMember, sélectionnez authors.

    La définition de ces deux propriétés a pour effet de lier à la grille la table de données Authors du groupe de données DsAuthors1.

  6. Redimensionnez la grille de façon à afficher toutes les colonnes. Modifiez sa hauteur de façon à afficher plusieurs enregistrements d'auteur.

Remplissage du contrôle DataGrid

Bien que la grille de données soit liée au groupe de données que vous avez créé, celui-ci n'est pas pour autant rempli automatiquement. Vous devez donc le remplir vous-même en appelant une méthode adaptateur de données. Pour plus d'informations sur le remplissage des groupes de données, consultez Introduction aux groupes de données.

Pour remplir le contrôle DataGrid

  1. Sous l'onglet Windows Forms de la Boîte à outils, faites glisser un contrôle Button jusqu'au formulaire.
  2. Nommez ce bouton btnLoad et changez sa légende en attribuant à la propriété Text la valeur Charger.
  3. Double-cliquez sur le bouton pour créer une méthode de gestion d'événements pour son événement Click.
  4. Dans la méthode, videz le groupe de données que vous avez créé, puis appelez la méthode Fill de l'adaptateur de données en lui passant le groupe de données à remplir.

    L'exemple suivant montre à quoi ressemble la méthode une fois terminée :

    ' Visual Basic
    Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
       DsAuthors1.Clear()
       OleDbDataAdapter1.Fill(DsAuthors1)
    End Sub
    
    // C#
    private void btnLoad_Click(object sender, System.EventArgs e)
    {
       dsAuthors1.Clear();
       oleDbDataAdapter1.Fill(dsAuthors1);
    }
    
    // C++
    private:
       System::Void btnLoad_Click(System::Object *  sender,
          System::EventArgs *  e)
          {
             dsAuthors1::Clear();
             oleDbDataAdapter1::Fill(dsAuthors1);
          }
    

Mise à jour de la base de données

Lorsque des utilisateurs modifient la grille, le contrôle enregistre automatiquement l'enregistrement mis à jour dans le groupe de données. Dans les Windows Forms, l'architecture de liaison de données écrit les valeurs des contrôles dépendants dans les lignes de données auxquels ils sont liés.

Remarque   Dans les pages Web Form, la liaison de données fonctionne un peu différemment. Pour un exemple de procédure pas à pas sur la liaison de données dans les pages Web Forms, consultez Procédure pas à pas : Affichage des données dans une page Web Forms et Procédure pas à pas : mise à jour des données à l'aide d'une requête de mise à jour de base de données dans les Web Forms.

Toutefois, lorsque vous utilisez un groupe de données, les mises à jour s'opèrent en deux étapes. Les données une fois placées dans le groupe de données, vous devez encore les envoyer du groupe de données vers la base de données. L'adaptateur de données peut effectuer cette opération à l'aide de sa méthode Update qui examine chaque enregistrement de la table de données spécifiée ; si l'un d'eux a été modifié, elle envoie la commande Update, Insert ou Delete appropriée à la base de données. Pour plus d'informations, consultez Introduction aux mises à jour de groupes de données.

Dans cette procédure pas à pas, vous ajouterez au formulaire un bouton sur lequel les utilisateurs pourront appuyer pour envoyer leurs mises à jour à la base de données.

Pour mettre à jour la base de données

  1. Sous l'onglet Windows Forms de la Boîte à outils, faites glisser un contrôle Button jusqu'au formulaire.
  2. Nommez ce bouton btnUpdate et changez sa légende en attribuant à la propriété Text la valeur Enreg. modif. dans BDD.
  3. Double-cliquez sur le bouton pour créer une méthode de gestion d'événements pour son événement Click.
  4. Dans la méthode, appelez la méthode Update de l'adaptateur de données en lui passant le groupe de données qui contient les mises à jour à envoyer à la base de données. Utilisez l'objet MessageBox pour afficher un texte de confirmation.

    L'exemple suivant montre à quoi ressemble la méthode une fois terminée :

    ' Visual Basic
    Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
       OleDbDataAdapter1.Update(DsAuthors1)
       MessageBox.Show("Database updated!")
    End Sub
    
    // C#
    private void btnUpdate_Click(object sender, System.EventArgs e)
    {
       oleDbDataAdapter1.Update(dsAuthors1);
       MessageBox.Show("Database updated!");
    }
    
    // C++
    private:
       System::Void btnUpdate_Click(System::Object *  sender,
          System::EventArgs *  e)
          {
             oleDbDataAdapter1::Update(dsAuthors1);
             MessageBox::Show("Database updated!");
          }
    

Test

Vous pouvez maintenant tester le formulaire pour vérifier qu'il affiche bien les données d'auteur dans la grille et que l'utilisateur peut effectuer des mises à jour.

Pour tester le formulaire

  1. Appuyez sur F5 pour exécuter le formulaire.
    Remarque   Il n'est pas rare d'obtenir une exception de type System.Data.SqlClient.SqlException à ce stade, généralement due à la façon dont vos informations d'authentification de base de données ont été enregistrées. Pour plus d'informations pour remédier à ce problème, consultez Impossible d'accéder lors de l'exécution à une base de données à laquelle j'ai accès lors de la conception.
  2. Lorsque le formulaire est affiché, cliquez sur le bouton Charger.

    Une liste d'auteurs est affichée dans la grille.

  3. Modifiez un enregistrement dans la grille.

    Lorsque vous vous placez dans un autre enregistrement de la grille, la modification est conservée. Gardez en mémoire la modification.

  4. Cliquez de nouveau sur le bouton Charger.

    Vous rechargez ainsi le groupe de données à partir de la base de données et actualisez la grille. Notez que la modification effectuée à l'étape 3 n'est pas conservée, et cela parce que vous n'avez pas enregistré les modifications du groupe de données dans la base de données.

  5. Modifiez un autre enregistrement dans la grille.
  6. Cliquez sur le bouton Enreg. modif. dans BDD.

    Vous voyez s'afficher le message, mais aucune modification n'est apportée à la grille.

  7. Cliquez de nouveau sur le bouton Charger pour recharger les données à partir de la base de données.

    Cette fois, la modification effectuée à l'étape 5 est conservée, car les données ont été enregistrées dans la base de données.

Étapes suivantes

Cette procédure pas à pas vous a présenté les étapes élémentaires permettant d'afficher des données dans un formulaire. Toutefois, vous pouvez apporter au formulaire de cette procédure les améliorations suivantes :

  • Mettez en forme la grille en modifiant sa couleur, sa police, etc.
  • Afficher les données dans la grille sans qu'elles soient explicitement chargées par l'utilisateur. Pour ce faire, vous ajoutez une méthode Fill à la méthode New du formulaire (dans Visual Basic) ou du constructeur (dans C#) et supprimer le bouton Charger.
  • Afficher uniquement les informations sélectionnées dans la grille. Dans de nombreux cas, l'affichage est basé sur des informations fournies par l'utilisateur au moment de l'exécution (par exemple, vous pouvez n'afficher que les auteurs d'une certaine ville). Pour ce faire, créez une requête paramétrée. Pour plus d'informations, consultez Procédure pas à pas : affichage des données dans un Windows Form à l'aide d'une requête paramétrée.
  • Séparer l'accès aux données de l'interface utilisateur. Dans cette procédure pas à pas, vous avez créé un formulaire qui accède plus ou moins directement aux données (via le groupe de données). Pour plus de souplesse et de facilité de mise à jour, vous pouvez aussi créer un composant qui gère l'accès aux données. Le formulaire (autrement dit, l'interface utilisateur) peut alors interagir avec le composant dès que nécessaire. Le même composant peut être utilisé par plusieurs formulaires (et par d'autres composants), ce qui supprime la surcharge et la redondance que représenterait le fait de redéfinir l'accès aux données pour chaque formulaire créé. Pour plus d'informations sur la création d'accès aux données par le biais d'un composant, consultez Procédure pas à pas : création d'une application distribuée.

Voir aussi

Procédure pas à pas : affichage des données dans un Windows Form à l'aide d'une requête paramétrée

Afficher:
© 2014 Microsoft