Comment : compter, additionner ou faire la moyenne de données à l'aide de LINQ (Visual Basic)
LINQ (Language-Integrated Query) facilite l'accès aux informations de la base de données et l'exécution des requêtes.
L'exemple suivant indique comment créer une nouvelle application qui effectue des requêtes sur une base de données SQL Server. L'exemple compte, additionne et fait la moyenne des résultats à l'aide des clauses Aggregate et Group By. Pour plus d'informations, consultez Aggregate, clause (Visual Basic) et Group By, clause (Visual Basic).
Les exemples de cette rubrique utilisent l'exemple de base de données Northwind. Si vous ne disposez pas de l'exemple de base de données Northwind sur votre ordinateur de développement, vous pouvez le télécharger sur le site Web du Centre de téléchargement Microsoft. Pour obtenir des instructions, consultez Téléchargement d'exemples de bases de données.
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, voir Paramètres Visual Studio.
Pour créer une connexion à une base de données
Dans Visual Studio, ouvrez l'Explorateur de serveurs/Explorateur de bases de données en cliquant sur Explorateur de serveurs ou Explorateur de bases de données dans le menu Affichage.
Dans l'Explorateur de serveurs/Explorateur de bases de données, cliquez avec le bouton droit sur Connexions de données, puis sur Ajouter une connexion.
Spécifiez une connexion valide à l'exemple de base de données Northwind.
Pour ajouter un projet contenant un fichier LINQ to SQL
Dans le menu Fichier de Visual Studio, 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 Ajouter. Le fichier northwind.dbml s'ouvre dans le Concepteur Objet/Relationnel (Concepteur O/R).
Pour ajouter des tables à interroger au Concepteur O/R
Dans l'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 dans le volet gauche du concepteur. Cliquez sur la table Orders et faites-la glisser dans le volet gauche du concepteur.
Le concepteur crée de nouveaux objets Customer et Order pour votre projet. Notez que le concepteur détecte automatiquement les relations entre les tables et crée des propriétés enfants pour les objets connexes. Par exemple, IntelliSense indiquera que l'objet Customer a une propriété Orders pour tous les commandes associées à ce client.
Enregistrez vos modifications et fermez le concepteur.
Enregistrez votre projet.
Pour ajouter du code en vue d'interroger 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 pour votre projet, Form1.
Double-cliquez sur Form1 pour ajouter le code à l'événement Load du formulaire.
Lorsque vous avez ajouté des tables au Concepteur O/R, le concepteur a ajouté un objet DataContext à votre projet. Cet objet contient le code indispensable pour accéder à ces tables, ainsi qu'aux collections et objets individuels de chaque table. L'objet DataContext pour votre projet est nommé d'après le nom de votre fichier .dbml. Pour ce projet, l'objet DataContext est nommé northwindDataContext.
Vous pouvez créer une instance du DataContext dans votre code et interroger les tables spécifiées par le Concepteur O/R.
Ajoutez le code suivant à l'événement Load pour interroger les tables qui sont exposées comme propriétés de votre DataContext et compter, additionner et faire la moyenne des résultats. L'exemple utilise la clause Aggregate pour interroger un résultat unique et la clause Group By pour afficher une moyenne pour les résultats groupés.
Dim db As New northwindDataContext Dim msg = "" Dim londonCustomerCount = Aggregate cust In db.Customers Where cust.City = "London" Into Count() msg &= "Count of London Customers: " & londonCustomerCount & vbCrLf Dim averageOrderCount = Aggregate cust In db.Customers Where cust.City = "London" Into Average(cust.Orders.Count) msg &= "Average number of Orders per customer: " & averageOrderCount & vbCrLf Dim venezuelaTotalOrders = Aggregate cust In db.Customers Where cust.Country = "Venezuela" Into Sum(cust.Orders.Count) msg &= "Total number of orders from Customers in Venezuela: " & venezuelaTotalOrders & vbCrLf MsgBox(msg) Dim averageCustomersByCity = From cust In db.Customers Group By cust.City Into Average(cust.Orders.Count) Order By Average DataGridView1.DataSource = averageCustomersByCity
Appuyez sur F5 pour exécuter votre projet et consulter les résultats.
Voir aussi
Tâches
Procédure pas à pas : création de classes LINQ to SQL (Concepteur O/R)
Référence
Aggregate, clause (Visual Basic)
Group By, clause (Visual Basic)
Concepts
Méthodes DataContext (Concepteur O/R)