Share via


Procedure: Gegevens tellen, optellen of gemiddelden met behulp van LINQ (Visual Basic)

Language-Integrated Query (LINQ) maakt het eenvoudig om toegang te krijgen tot databasegegevens en query's uit te voeren.

In het volgende voorbeeld ziet u hoe u een nieuwe toepassing maakt waarmee query's worden uitgevoerd op een SQL Server-database. De voorbeeldaantallen, sommen en gemiddelden van de resultaten met behulp van de Aggregate en Group By componenten. Zie Aggregaties enGroup By-component voor meer informatie.

In de voorbeelden in dit onderwerp wordt de voorbeelddatabase Northwind gebruikt. Als u deze database niet op uw ontwikkelcomputer hebt, kunt u deze downloaden via het Microsoft Downloadcentrum. Zie Voorbeelddatabases downloaden voor instructies.

Notitie

Mogelijk worden op uw computer verschillende namen of locaties weergegeven voor sommige elementen van de Visual Studio-gebruikersinterface in de volgende instructies. De Visual Studio-editie die u hebt en de instellingen die u gebruikt, bepalen deze elementen. Zie Personalizing the IDE (Personalizing the IDE) voor meer informatie.

Een verbinding met een database maken

  1. Open Server Explorer/Database Explorer in Visual Studio door te klikken op Server Explorer Database Explorer/ in het menu Beeld.

  2. Klik met de rechtermuisknop op Gegevens Verbinding maken ions in Server Explorer/Database Explorer en klik vervolgens op Verbinding maken ion toevoegen.

  3. Geef een geldige verbinding op met de northwind-voorbeelddatabase.

Een project met een LINQ toevoegen aan een SQL-bestand

  1. Wijs in Visual Studio in het menu Bestand de optie Nieuw aan en klik vervolgens op Project. Selecteer Visual Basic Windows Forms Application als projecttype.

  2. Klik in het menu Project op Nieuw item toevoegen. Selecteer de ITEMsjabloon LINQ naar SQL-klassen .

  3. Noem het bestand northwind.dbml. Klik op Toevoegen. De Object Relational Designer (O/R Designer) wordt geopend voor het bestand northwind.dbml.

Tabellen toevoegen aan query's in O/R Designer

  1. Vouw in Server Explorer/Database Explorer de verbinding met de Northwind-database uit. Vouw de map Tabellen uit.

    Als u de O/R Designer hebt gesloten, kunt u deze opnieuw openen door te dubbelklikken op het northwind.dbml-bestand dat u eerder hebt toegevoegd.

  2. Klik op de tabel Klanten en sleep deze naar het linkerdeelvenster van de ontwerpfunctie. Klik op de tabel Orders en sleep deze naar het linkerdeelvenster van de ontwerpfunctie.

    De ontwerpfunctie maakt nieuwe Customer objecten voor Order uw project. U ziet dat de ontwerper automatisch relaties tussen de tabellen detecteert en onderliggende eigenschappen voor gerelateerde objecten maakt. IntelliSense geeft bijvoorbeeld aan dat het Customer object een Orders eigenschap heeft voor alle orders die aan die klant zijn gerelateerd.

  3. Sla uw wijzigingen op en sluit de ontwerpfunctie.

  4. Sla uw project op.

Code toevoegen om een query uit te voeren op de database en de resultaten weer te geven

  1. Sleep vanuit de werkset een DataGridView besturingselement naar het standaard Windows-formulier voor uw project, Form1.

  2. Dubbelklik op Form1 om code toe te voegen aan de Load gebeurtenis van het formulier.

  3. Wanneer u tabellen aan O/R Designer hebt toegevoegd, heeft de ontwerper een DataContext object toegevoegd voor uw project. Dit object bevat de code die u nodig hebt voor toegang tot deze tabellen en voor toegang tot afzonderlijke objecten en verzamelingen voor elke tabel. Het DataContext object voor uw project heeft een naam op basis van de naam van uw .dbml-bestand. Voor dit project heeft het object de DataContext naam northwindDataContext.

    U kunt een exemplaar van de DataContext code maken en de tabellen opvragen die zijn opgegeven door de O/R Designer.

    Voeg de volgende code toe aan de Load gebeurtenis om een query uit te voeren op de tabellen die worden weergegeven als eigenschappen van uw DataContext resultaten en aantallen, som en gemiddelde. In het voorbeeld wordt de Aggregate component gebruikt om een query uit te voeren op één resultaat en de Group By component om een gemiddelde voor gegroepeerde resultaten weer te geven.

    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. Druk op F5 om uw project uit te voeren en de resultaten weer te geven.

Zie ook