Lire en anglais

Partager via


Guide pratique pour modifier des données dans une base de données à l’aide de LINQ (Visual Basic)

Les requêtes LINQ Language-Integrated facilitent l'accès aux informations de la base de données et la modification des valeurs dans la base de données.

L’exemple suivant montre comment créer une application qui récupère et met à jour des informations dans une base de données SQL Server.

Les exemples présentés dans cet article utilisent la base de données d'échantillons Northwind. Pour obtenir la base de données, consultez Téléchargement d’exemples de bases de données.

Pour créer une connexion à une base de données

  1. Dans Visual Studio, ouvrez Explorateur de serveurs/Explorateur de bases de données en cliquant sur le menu Affichage, puis sélectionnez Explorateur de serveurs/.

  2. Cliquez avec le bouton droit sur Connexions de données dans Explorateur de serveurs et/Explorateur de base de données, puis cliquez sur Ajouter une connexion.

  3. Indiquez une connexion valide à l'exemple de base de données Northwind.

Pour ajouter un projet avec un fichier LINQ to SQL

  1. Dans Visual Studio, dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet. Sélectionnez Visual Basic application Windows Forms comme type de projet.

  2. Dans le menu projet, cliquez sur Ajouter un nouvel élément. Sélectionnez le modèle d'élément Classes LINQ to SQL.

  3. Nommez le fichier northwind.dbml. Cliquez sur Ajouter. Le Concepteur relationnel objet (Concepteur O/R) est ouvert pour le fichier northwind.dbml.

Pour ajouter des tables à interroger et à modifier dans le concepteur

  1. Dans Explorateur de serveurs/Explorateur de bases de données, développez la connexion à la base de données Northwind. Développez le dossier Tables .

    Si vous avez fermé le Concepteur O/R, vous pouvez le rouvrir en double-cliquant sur le fichier northwind.dbml que vous avez ajouté précédemment.

  2. Cliquez sur le tableau Clients et faites-le glisser dans le volet gauche du concepteur.

    Le concepteur crée un objet Customer pour votre projet.

  3. Enregistrez vos modifications et fermez l'éditeur.

  4. Enregistrez votre projet.

Pour ajouter du code pour modifier la base de données et afficher les résultats

  1. À partir de la boîte à outils , faites glisser un contrôle DataGridView sur le Windows Form par défaut pour votre projet, Form1.

  2. Lorsque vous avez ajouté des tables au Concepteur O/R, le concepteur a ajouté un objet DataContext à votre projet. Cet objet contient du code que vous pouvez utiliser pour accéder à la table Customers. Il contient également du code qui définit un objet Customer local et une collection Customers pour la table. L’objet DataContext de votre projet est nommé en fonction du nom de votre fichier .dbml. Pour ce projet, l’objet DataContext est nommé northwindDataContext.

    Vous pouvez créer une instance de l’objet DataContext dans votre code et interroger et modifier la collection Customers spécifiée par le Concepteur O/R. Les modifications apportées à la collection Customers ne sont pas reflétées dans la base de données tant que vous ne les envoyez pas en appelant la méthode SubmitChanges de l’objet DataContext.

    Double-cliquez sur le formulaire Windows, Form1, pour ajouter du code à l'événement Load afin d'interroger la table Customers qui est exposée en tant que propriété de votre DataContext. Ajoutez le code suivant :

    VB
    Private db As northwindDataContext
    
    Private Sub Form1_Load(ByVal sender As System.Object,
                           ByVal e As System.EventArgs
                          ) Handles MyBase.Load
      db = New northwindDataContext()
    
      RefreshData()
    End Sub
    
    Private Sub RefreshData()
      Dim customers = From cust In db.Customers
                      Where cust.City(0) = "W"
                      Select cust
    
      DataGridView1.DataSource = customers
    End Sub
    
  3. À partir de la boîte à outils , faites glisser trois contrôles Button sur le formulaire. Sélectionnez le premier contrôle Button. Dans la fenêtre Propriétés , définissez la Name du contrôle Button sur AddButton et le Text sur Add. Sélectionnez le deuxième bouton et définissez la propriété Name sur UpdateButton et la propriété Text sur Update. Sélectionnez le troisième bouton et définissez la propriété Name sur DeleteButton et la propriété Text sur Delete.

  4. Double-cliquez sur le bouton Ajouter pour ajouter du code à son événement Click. Ajoutez le code suivant :

    VB
    Private Sub AddButton_Click(ByVal sender As System.Object,
                                ByVal e As System.EventArgs
                               ) Handles AddButton.Click
      Dim cust As New Customer With {
        .City = "Wellington",
        .CompanyName = "Blue Yonder Airlines",
        .ContactName = "Jill Frank",
        .Country = "New Zealand",
        .CustomerID = "JILLF"}
    
      db.Customers.InsertOnSubmit(cust)
    
      Try
        db.SubmitChanges()
      Catch
        ' Handle exception.
      End Try
    
      RefreshData()
    End Sub
    
  5. Double-cliquez sur le bouton Mise à jour pour ajouter du code à son événement Click. Ajoutez le code suivant :

    VB
    Private Sub UpdateButton_Click(ByVal sender As System.Object, _
                                   ByVal e As System.EventArgs
                                  ) Handles UpdateButton.Click
      Dim updateCust = (From cust In db.Customers
                        Where cust.CustomerID = "JILLF").ToList()(0)
    
      updateCust.ContactName = "Jill Shrader"
      updateCust.Country = "Wales"
      updateCust.CompanyName = "Red Yonder Airlines"
      updateCust.City = "Cardiff"
    
      Try
        db.SubmitChanges()
      Catch
        ' Handle exception.
      End Try
    
      RefreshData()
    End Sub
    
  6. Double-cliquez sur le bouton Supprimer pour ajouter du code à son événement Click. Ajoutez le code suivant :

    VB
    Private Sub DeleteButton_Click(ByVal sender As System.Object, _
                                   ByVal e As System.EventArgs
                                  ) Handles DeleteButton.Click
      Dim deleteCust = (From cust In db.Customers
                        Where cust.CustomerID = "JILLF").ToList()(0)
    
      db.Customers.DeleteOnSubmit(deleteCust)
    
      Try
        db.SubmitChanges()
      Catch
        ' Handle exception.
      End Try
    
      RefreshData()
    End Sub
    
  7. Appuyez sur F5 pour exécuter votre projet. Cliquez sur Ajouter pour ajouter un nouvel enregistrement. Cliquez sur Mettre à jour pour modifier le nouvel enregistrement. Cliquez sur Supprimer pour supprimer le nouvel enregistrement.

Voir aussi