Comment : modifier des données dans une base de données à l'aide de LINQ (Visual Basic)
Les requêtes LINQ (Language-Integrated Query) facilitent l’accès aux informations de 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 de cette rubrique utilisent l’exemple de base de données Northwind. Si cette base de données n’est pas disponible sur votre ordinateur de développement, vous pouvez la télécharger à partir du Centre de téléchargement Microsoft. Pour obtenir des instructions, consultez Téléchargement d’exemples de bases de données.
Pour créer une connexion à une base de données
Dans Visual Studio, ouvrez Explorateur de serveurs/Explorateur de base de données en cliquant sur le menu Affichage, puis sélectionnez Explorateur de serveurs/Explorateur de base de données.
Avec le bouton droit, cliquez sur Connexions de données dans Explorateur de serveurs/Explorateur de base de données, puis cliquez sur Ajouter une connexion.
Spécifiez une connexion valide à l’exemple de base de données Northwind.
Pour ajouter un projet avec un fichier LINQ to SQL
Dans Visual Studio, dans le menu Fichier,pointez sur Nouveau, puis cliquez sur Projet. Sélectionnez Application Windows Forms Visual Basic comme type de projet.
Dans le menu Projet , cliquez sur Ajouter un nouvel élément. Sélectionnez le modèle d’élément Classes LINQ to SQL.
Nommez le fichier
northwind.dbml
. Cliquez sur Add. Le Concepteur Objet Relationnel (Concepteur O/R) est ouvert pour le fichiernorthwind.dbml
.
Pour ajouter des tables à interroger et modifier dans le concepteur
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.Cliquez sur la table Customers et faites-la glisser vers le volet gauche du concepteur.
Le concepteur crée un objet Customer pour votre projet.
Enregistrez vos modifications et fermez le concepteur.
Enregistrez votre projet.
Pour ajouter du code pour modifier la base de données et afficher les résultats
À partir de la boîte à outils, faites glisser un contrôle DataGridView sur le Windows Form par défaut de votre projet Form1.
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é d'après le nom de votre fichier LINQ to SQL. Pour ce projet, l’objet DataContext est nommé
northwindDataContext
.Vous pouvez créer une instance de l’objet DataContext dans votre code puis 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 Windows Form, Form1, pour ajouter du code à l’événement Load afin d’interroger la table Customers exposée en tant que propriété de votre DataContext. Ajoutez le code suivant :
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
À 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 leName
duButton
contrôle surAddButton
et surText
Add
. Sélectionnez le deuxième bouton et définissez la propriétéName
surUpdateButton
et la propriétéText
surUpdate
. Sélectionnez le troisième bouton et définissez la propriétéName
surDeleteButton
et la propriétéText
surDelete
.Double-cliquez sur le bouton Ajouter pour ajouter du code à son événement
Click
. Ajoutez le code suivant :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
Double-cliquez sur le bouton Mettre à jour pour ajouter du code à son événement
Click
. Ajoutez le code suivant :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
Double-cliquez sur le bouton Supprimer pour ajouter du code à son événement
Click
. Ajoutez le code suivant :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
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.