Gewusst wie: Bestimmen von Zahlen, Summen oder Durchschnittswerten von Daten mithilfe von LINQ (Visual Basic)

LINQ (Language Integrated Query) vereinfacht den Zugriff auf Datenbankinformationen und die Ausführung von Abfragen.

Das folgende Beispiel zeigt, wie Sie eine Anwendung erstellen, die Abfragen in einer SQL Server-Datenbank ausführt. In der Stichprobe werden die Ergebnisse gezählt, summiert und gemittelt, indem die Aggregate- und Group By-Klauseln verwendet werden. Weitere Informationen finden Sie unter Aggregat-Klausel und Group By-Klausel.

In den Beispielen in diesem Thema wird die Northwind-Beispieldatenbank verwendet. Befindet sich diese Datenbank nicht auf Ihrem Entwicklungscomputer, können Sie sie aus dem Microsoft Download Center herunterladen. Anweisungen hierzu finden Sie unter Herunterladen von Beispieldatenbanken.

Hinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren der IDE.

So stellen Sie eine Verbindung mit einer Datenbank her

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

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

  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ü Projekt auf Neues Element hinzufügen. Wählen Sie die Objektvorlage LINQ to SQL-Klassen.

  3. Nennen 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-Explorer die Verbindung mit der Northwind-Datenbank. Erweitern Sie den Ordner Tabellen .

    Wenn Sie O/R-Designer geschlossen haben, können Sie das Tool erneut öffnen, indem Sie auf die Datei „northwind.dbml“ doppelklicken, die Sie zuvor hinzugefügt haben.

  2. Klicken Sie auf die Tabelle „Customers“, und ziehen Sie sie in den linken Bereich des Designers. Klicken Sie auf die Tabelle „Orders“, 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. Beispielsweise zeigt IntelliSense an, dass das Customer-Objekt über eine Orders-Eigenschaft für alle Bestellungen verfügt, die einzelnen Kund*innen zugeordnet sind.

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

  4. Speichern Sie das 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 „Form1“, um dem Load-Ereignis des Formulars Code hinzuzufügen.

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

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

    Fügen Sie dem Load-Ereignis den folgenden Code hinzu, um die Tabellen abzufragen, die als Eigenschaften Ihres DataContext angezeigt werden, und die Ergebnisse zu zählen, zu summieren und zu mitteln. Im Beispiel wird die Aggregate-Klausel verwendet, um ein einzelnes Ergebnis abzufragen, und die Group By-Klausel, um einen Durchschnitt 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 das Projekt auszuführen und die Ergebnisse anzuzeigen.

Weitere Informationen