Freigeben über


Wie man Daten mithilfe von LINQ (Visual Basic) zählt, summiert oder im Durchschnitt berechnet

Language-Integrated Query (LINQ) erleichtert den Zugriff auf Datenbankinformationen und das Ausführen von Abfragen.

Das folgende Beispiel zeigt, wie Sie eine neue Anwendung erstellen, die Abfragen für eine SQL Server-Datenbank ausführt. Die Stichprobe zählt, summiert und ermittelt den Durchschnitt der Ergebnisse mithilfe der Aggregate und Group By Klauseln. Weitere Informationen finden Sie unter Aggregate Clause und Group By Clause.

In den Beispielen in diesem Artikel wird die Northwind-Beispieldatenbank verwendet. Informationen zum Abrufen der Datenbank finden Sie unter Herunterladen von Beispieldatenbanken..

Anmerkung

Auf Ihrem Computer werden möglicherweise unterschiedliche Namen oder Speicherorte für einige der Visual Studio-Benutzeroberflächenelemente in den folgenden Anweisungen angezeigt. Die Visual Studio-Edition, über die Sie verfügen, und die Einstellungen, die Sie verwenden, bestimmen diese Elemente. Weitere Informationen finden Sie in Personalisierung der IDE.

So erstellen Sie eine Verbindung mit einer Datenbank

  1. Öffnen Sie in Visual Studio Server-Explorer/Datenbank-Explorer, indem Sie im Menü Ansichtauf Server-Explorer/-Datenbank-Explorer klicken.

  2. Klicken Sie in Server-Explorer/Datenbank-Explorer mit der rechten Maustaste auf Datenverbindungen, und klicken Sie dann auf Verbindung hinzufügen.

  3. Geben Sie eine gültige Verbindung mit der Northwind-Beispieldatenbank an.

So fügen Sie ein Projekt hinzu, das eine LINQ to SQL-Datei enthält

  1. Zeigen Sie in Visual Studio im Menü Datei auf Neu, und klicken Sie auf Projekt. Wählen Sie Visual Basic Windows Forms-Anwendung als Projekttyp aus.

  2. Klicken Sie im Menü Project auf Neues Element hinzufügen. Wählen Sie die Objektvorlage LINQ to SQL-Klassen.

  3. Benennen Sie die Datei northwind.dbml. Klicken Sie auf Hinzufügen. Der objektrelationale Designer (O/R Designer) wird für die Datei northwind.dbml geöffnet.

So fügen Sie Abfragen im O/R-Designer Tabellen hinzu

  1. Erweitern Sie in Server-Explorer/Datenbank-Explorerdie Verbindung mit der Northwind-Datenbank. Erweitern Sie den Ordner Tabellen .

    Wenn Sie den O/R-Designer geschlossen haben, können Sie ihn erneut öffnen, indem Sie auf die datei northwind.dbml doppelklicken, die Sie zuvor hinzugefügt haben.

  2. Klicken Sie auf die Tabelle "Kunden", und ziehen Sie sie in den linken Bereich des Designers. Klicken Sie auf die Tabelle "Bestellungen", und ziehen Sie sie in den linken Bereich des Designers.

    Der Designer erstellt neue Customer und Order Objekte für Ihr Projekt. Beachten Sie, dass der Designer automatisch Beziehungen zwischen den Tabellen erkennt und untergeordnete Eigenschaften für verwandte Objekte erstellt. IntelliSense zeigt z. B. an, dass das Customer-Objekt eine Orders Eigenschaft für alle Bestellungen aufweist, die mit diesem Kunden zusammenhängen.

  3. Speichern Sie Ihre Änderungen, und schließen Sie den Designer.

  4. Speichern Sie Ihr Projekt.

So fügen Sie Code hinzu, um die Datenbank abzufragen und die Ergebnisse anzuzeigen

  1. Ziehen Sie aus der Toolbox ein DataGridView-Steuerelement auf das Windows-Standardformular „Form1“ Ihres Projekts.

  2. Doppelklicken Sie auf "Formular1", um dem Load Ereignis des Formulars Code hinzuzufügen.

  3. Wenn Sie dem O/R-Designer Tabellen hinzugefügt haben, hat der Designer ein DataContext-Objekt für Ihr Projekt hinzugefügt. Dieses Objekt enthält den Code, den Sie benötigen, um auf diese Tabellen zuzugreifen und auf einzelne Objekte und Auflistungen für jede Tabelle zuzugreifen. Das DataContext-Objekt für Ihr Projekt wird basierend auf dem Namen der DBML-Datei benannt. Für dieses Projekt wird das DataContext-Objekt northwindDataContextbenannt.

    Sie können eine Instanz des DataContext in Ihrem Code erstellen und die vom O/R-Designer angegebenen Tabellen abfragen.

    Fügen Sie den folgenden Code zum Load-Ereignis hinzu, um die Tabellen abzufragen, die als Eigenschaften Ihrer DataContext bereitgestellt werden, und um die Ergebnisse zu zählen, zu summieren und den Durchschnitt zu berechnen. Im Beispiel wird die Aggregate-Klausel verwendet, um ein einzelnes Ergebnis abzufragen, und die Group By-Klausel, um einen Mittelwert für gruppierte Ergebnisse anzuzeigen.

    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. Drücken Sie F5, um Ihr Projekt auszuführen und die Ergebnisse anzuzeigen.

Siehe auch