Procédure pas à pas : Manipulation de données (Visual Basic)
Cette procédure pas à pas fournit un scénario LINQ to SQL complet essentiel pour l’ajout, la modification et la suppression de données dans une base de données. Vous utiliserez une copie de l'exemple de base de données Northwind pour ajouter un client, modifier le nom d'un client et supprimer une commande.
Notes
Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnalisation de l’IDE.
Cette procédure pas à pas a été écrite à l'aide des paramètres de développement Visual Basic.
Prérequis
Elle requiert les éléments suivants :
Les fichiers sont stockés dans un dossier dédié, c:\linqtest2. Vous devez créer ce dossier avant de commencer la procédure pas à pas.
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 site de téléchargement Microsoft. Pour obtenir des instructions, consultez Téléchargement d’exemples de bases de données. Après avoir téléchargé la base de données, copiez le fichier northwnd.mdf dans le dossier c:\linqtest2.
Fichier de code Visual Basic généré à partir de la base de données Northwind.
Vous pouvez générer ce fichier à l’aide du Concepteur Objet Relationnel ou de l’outil SQLMetal. Cette procédure pas à pas a été écrite à l'aide de l'outil SQLMetal, avec la ligne de commande suivante :
sqlmetal /code:"c:\linqtest2\northwind.vb" /language:vb "C:\linqtest2\northwnd.mdf" /pluralize
Pour plus d’informations, consultez SqlMetal.exe (outil de génération de code).
Vue d’ensemble
Cette procédure pas à pas se compose de six tâches principales :
Création de la solution LINQ to SQL dans Visual Studio.
Ajout du fichier de code de base de données au projet.
Création d'un objet représentant un client.
Modification du nom de contact d'un client.
Suppression d'une commande.
Soumission de ces modifications à la base de données Northwind.
Création d'une solution LINQ to SQL
Au cours de cette première tâche, vous allez créer une solution Visual Studio qui contient les références nécessaires pour générer et exécuter un projet LINQ to SQL.
Pour créer une solution LINQ to SQL
Dans le menu Fichier de Visual Studio, cliquez sur Nouveau projet.
Dans le volet Types de projets de la boîte de dialogue Nouveau projet; sélectionnez Visual Basic.
Dans le volet Modèles, cliquez sur Application console.
Dans la zone Nom, tapez LinqDataManipulationApp.
Cliquez sur OK.
Ajout de références et de directives LINQ
Cette procédure pas à pas utilise des assemblys qui ne sont pas nécessairement installés par défaut dans votre projet. Si System.Data.Linq
n’est pas listé comme référence dans votre projet (cliquez sur Afficher tous les fichiers dans l’Explorateur de solutions et développez le nœud Références), ajoutez-le comme expliqué dans les étapes suivantes.
Pour ajouter System.Data.Linq
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur Références, puis cliquez sur Ajouter une référence.
Dans la boîte de dialogue Ajouter une référence, cliquez sur .NET, sur l’assembly System.Data.Linq, puis sur OK.
L'assembly est ajouté au projet.
Dans l’éditeur de code, ajoutez les directives suivantes au-dessus de Module1 :
Imports System.Data.Linq Imports System.Data.Linq.Mapping
Ajout du fichier de code Northwind au projet
Ces étapes supposent que vous avez utilisé l'outil SQLMetal pour générer un fichier de code à partir de l'exemple de base de données Northwind. Pour plus d'informations, consultez la section Composants requis au début de cette procédure pas à pas.
Pour ajouter le fichier de code Northwind au projet
Dans le menu Projet , cliquez sur Ajouter un élément existant.
Dans la boîte de dialogue Ajouter un élément existant, accédez à c:\linqtest2\northwind.vb, puis cliquez sur Ajouter.
Le fichier northwind.vb est ajouté au projet.
Paramétrage de la connexion de base de données
Commencez par tester votre connexion à la base de données. Notez en particulier que le nom de la base de données (Northwnd) ne comporte pas de caractère i. Si vous générez des erreurs au cours des étapes suivantes, examinez le fichier northwind.vb pour déterminer comment la classe partielle Northwind est orthographiée.
Pour paramétrer et tester la connexion de base de données
Tapez ou collez le code suivant dans
Sub Main
:' Use a connection string, but connect to ' the temporary copy of the database. Dim db As New Northwnd _ ("C:\linqtest2\northwnd.mdf") ' Keep the console window open after activity stops. Console.ReadLine()
Appuyez sur F5 pour tester l'application à ce stade.
Une fenêtre de console s’ouvre.
Fermez l’application en appuyant sur Entrée dans la fenêtre de console ou cliquez sur Arrêter le débogage dans le menu Déboguer de Visual Studio.
Création d'une entité
La création d'une entité est une opération simple. Vous pouvez créer des objets (Customer
, par exemple) à l'aide du mot clé New
.
Dans cette section et les suivantes, vous apporterez des modifications uniquement au cache local. Aucune modification n'est envoyée à la base de données tant que vous n'avez pas appelé SubmitChanges vers la fin de cette procédure pas à pas.
Pour ajouter un nouvel objet d'entité Customer
Créez un
Customer
en ajoutant le code suivant avantConsole.ReadLine
dansSub Main
:' Create the new Customer object. Dim newCust As New Customer() newCust.CompanyName = "AdventureWorks Cafe" newCust.CustomerID = "A3VCA" ' Add the customer to the Customers table. db.Customers.InsertOnSubmit(newCust) Console.WriteLine("Customers matching CA before insert:") Dim custQuery = _ From cust In db.Customers _ Where cust.CustomerID.Contains("CA") _ Select cust For Each cust In custQuery Console.WriteLine("Customer ID: " & cust.CustomerID) Next
Appuyez sur F5 pour déboguer la solution.
Les résultats suivants s'affichent dans la fenêtre de console :
Customers matching CA before insert:
Customer ID: CACTU
Customer ID: RICAR
Notez que la nouvelle ligne n'apparaît pas dans les résultats. Les nouvelles données n'ont pas encore été soumises à la base de données.
Appuyez sur Entrée dans la fenêtre de console pour arrêter le débogage.
Mise à jour d'une entité
Au cours des étapes suivantes, vous allez récupérer un objet Customer
et modifier l'une de ses propriétés.
Pour modifier le nom d'un client
Ajoutez le code suivant au-dessus de
Console.ReadLine()
:Dim existingCust = _ (From cust In db.Customers _ Where cust.CustomerID = "ALFKI" _ Select cust).First() ' Change the contact name of the customer. existingCust.ContactName = "New Contact"
Suppression d’une entité
Vous pouvez supprimer la première commande à l'aide du même objet Customer.
Le code suivant montre comment couper les relations entre les lignes et supprimer une ligne de la base de données.
Pour supprimer une ligne
Ajoutez le code suivant juste au-dessus de
Console.ReadLine()
:' Access the first element in the Orders collection. Dim ord0 As Order = existingCust.Orders(0) ' Access the first element in the OrderDetails collection. Dim detail0 As OrderDetail = ord0.OrderDetails(0) ' Display the order to be deleted. Console.WriteLine _ (vbCrLf & "The Order Detail to be deleted is: OrderID = " _ & detail0.OrderID) ' Mark the Order Detail row for deletion from the database. db.OrderDetails.DeleteOnSubmit(detail0)
Soumission des modifications à la base de données
La dernière étape requise pour la création, la mise à jour et la suppression d'objets consiste à soumettre les modifications à la base de données. Sans cette étape, vos modifications restent locales et n'apparaissent pas dans les résultats de requêtes.
Pour soumettre les modifications à la base de données
Insérez le code suivant juste au-dessus de
Console.ReadLine
:db.SubmitChanges()
Insérez le code suivant (après
SubmitChanges
) pour afficher les effets avant/après de la soumission des modifications :Console.WriteLine(vbCrLf & "Customers matching CA after update:") Dim finalQuery = _ From cust In db.Customers _ Where cust.CustomerID.Contains("CA") _ Select cust For Each cust In finalQuery Console.WriteLine("Customer ID: " & cust.CustomerID) Next
Appuyez sur F5 pour déboguer la solution.
La fenêtre de console se présente comme suit :
Customers matching CA before update: Customer ID: CACTU Customer ID: RICAR The Order Detail to be deleted is: OrderID = 10643 Customers matching CA after update: Customer ID: A3VCA Customer ID: CACTU Customer ID: RICAR
Appuyez sur Entrée dans la fenêtre de console pour arrêter le débogage.
Notes
Une fois que vous avez soumis les modifications (ajouté le nouveau client), vous ne pouvez plus exécuter cette solution telle quelle car vous ne pouvez plus ajouter le même client tel quel. Pour exécuter à nouveau la solution, modifiez la valeur de l'ID client à ajouter.