Partager via


Guide pratique pour compter, somme ou moyenne des données à l’aide de LINQ (Visual Basic)

Language-Integrated Requête (LINQ) facilite l’accès aux informations de base de données et l’exécution de requêtes.

L’exemple suivant montre comment créer une application qui effectue des requêtes sur une base de données SQL Server. L’exemple compte, additionne et moyenne les résultats à l’aide des clauses Aggregate et Group By. Pour plus d’informations, consultez Clause Aggregate et Clause Group By.

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

Remarque

Votre ordinateur peut afficher différents noms ou emplacements pour certains des éléments de l’interface utilisateur Visual Studio dans les instructions suivantes. L’édition Visual Studio que vous avez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnaliser l’IDE.

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 Explorateur de serveurs/Explorateur de bases de données dans le menu Affichage .

  2. Cliquez avec le bouton droit sur connexions de données dans Explorateur de serveurs/Explorateur de bases 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 qui contient 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 au Concepteur O/R

  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 Customers et faites-le glisser vers le volet gauche de l'éditeur. Cliquez sur le tableau des commandes et faites-le glisser vers 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 associés. Par exemple, IntelliSense montre que l’objet Customer a une propriété Orders pour toutes les commandes associées à ce client.

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

  4. Enregistrez votre projet.

Pour ajouter du code pour interroger 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. Double-cliquez sur Form1 pour ajouter du code à l’événement Load du formulaire.

  3. Lorsque vous avez ajouté des tables au Concepteur O/R, le concepteur a ajouté un objet DataContext pour votre projet. Cet objet contient le code que vous devez avoir à accéder à ces tables et à accéder à des objets et collections individuels pour chaque 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 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 exposées en tant que propriétés de votre DataContext, et comptez, additionnez et faites 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
    
    'Another way to grab the count and sum
    
    londonCustomerCount = (From cust in db.Customers
                           Where cust.City = "London").Count()
    
    venezuelaTotalOrders = (From cust in db.Customers
                            Where cust.Country = "Venezuela"
                            Select cust.Orders).Sum()
    
  4. Appuyez sur F5 pour exécuter votre projet et afficher les résultats.

Voir aussi