Gewusst wie: Bestimmen von Zahlen, Summen oder Durchschnittswerten von Daten mithilfe von LINQ (Visual Basic)
Aktualisiert: November 2007
Die sprachintegrierte Abfrage (Language-Integrated Query, LINQ) vereinfacht den Zugriff auf Datenbankinformationen und das Ausführen von Abfragen.
Im folgenden Beispiel wird gezeigt, wie eine neue Anwendung erstellt wird, die eine SQL Server-Datenbank abfragt. Das Beispiel ermittelt die Zahlen, Summen und Durchschnittswerte der Ergebnisse mithilfe der Aggregate-Klausel und der Group By-Klausel. Weitere Informationen finden Sie unter Aggregate-Klausel (Visual Basic) und unter GROUP BY-Klausel (Visual Basic).
In den Beispielen dieses Themas wird die Beispieldatenbank Northwind verwendet. Wenn die Beispieldatenbank Northwind auf dem Entwicklungscomputer nicht installiert ist, kann sie von der Website Microsoft Download Center heruntergeladen werden. Anweisungen dazu finden Sie unter Herunterladen von Beispieldatenbanken (LINQ to SQL).
Hinweis: |
---|
Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen. |
So erstellen Sie eine Verbindung zu einer Datenbank
Öffnen Sie in Visual Studio den Server-Explorer/Datenbank-Explorer, indem Sie im Menü Ansicht auf Server-Explorer/Datenbank-Explorer klicken.
Klicken Sie im Server-Explorer/Datenbank-Explorer mit der rechten Maustaste auf Datenverbindungen und anschließend auf Verbindung hinzufügen.
Geben Sie eine gültige Verbindung zur Beispieldatenbank Northwind an.
So fügen Sie ein Projekt hinzu, das eine LINQ to SQL-Datei enthält
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.
Klicken Sie im Menü Projekt auf Neues Element hinzufügen. Wählen Sie die Elementvorlage LINQ to SQL-Klassen aus.
Nennen Sie die Datei northwind.dbml. Klicken Sie auf Hinzufügen. Der Object Relational Designer (O/R-Designer) wird für die Datei northwind.dbml geöffnet.
So fügen Sie abzufragende Tabellen zum O/R-Designer hinzu
Erweitern Sie im Server-Explorer/Datenbank-Explorer die Verbindung zur Datenbank Northwind. Erweitern Sie den Ordner Tabellen.
Wenn Sie den O/R-Designer geschlossen haben, können Sie ihn durch Doppelklicken auf die zuvor hinzugefügte Datei northwind.dbml erneut öffnen.
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-Objekte und neue Order-Objekte für das Projekt. Beachten Sie, dass der Designer Beziehungen zwischen den Tabellen automatisch erkennt und untergeordnete Eigenschaften für verknüpfte Objekte erstellt. So wird beispielsweise von IntelliSense angezeigt, dass das Customer-Objekt über eine Orders-Eigenschaft für alle Bestellungen dieses Kunden verfügt.
Speichern Sie die Änderungen, und schließen Sie den Designer.
Speichern Sie das Projekt.
So fügen Sie Code für Datenbankabfragen und zum Anzeigen der Ergebnisse hinzu
Ziehen Sie aus der Toolbox ein DataGridView-Steuerelement auf das Standard-Windows Form (Form1) des Projekts.
Doppelklicken Sie auf Form1, um dem Load-Ereignis des Formulars Code hinzuzufügen.
Wenn Sie dem O/R-Designer Tabellen hinzugefügt haben, wurde dem Projekt vom Designer ein DataContext-Objekt hinzugefügt. Dieses Objekt enthält den Code, der für den Zugriff auf diese Tabellen sowie auf einzelne Objekte und Aufzählungen jeder Tabelle benötigt wird. Das DataContext-Objekt des Projekts wird auf Grundlage des Namens der DBML-Datei benannt. Für dieses Projekt lautet der Name des DataContext-Objekts northwindDataContext.
Sie können im Code eine Instanz von DataContext erstellen und die vom O/R-Designer angegebenen Tabellen abfragen.
Fügen Sie folgenden Code zum Load-Ereignis hinzu, um die als Eigenschaften des DataContext verfügbar gemachten Tabellen abzufragen und Anzahl, Summen und Durchschnittwerte der Ergebnisse zu bestimmen. In diesem Beispiel wird die Aggregate-Klausel verwendet, um ein einzelnes Ergebnis abzufragen, und die Group By-Klausel, um einen Durchschnittswert 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
Drücken Sie F5, um das Projekt auszuführen und die Ergebnisse anzuzeigen.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Erstellen von LINQ to SQL-Klassen (O/R-Designer)
Konzepte
DataContext-Methoden (O/R-Designer)
Referenz
Aggregate-Klausel (Visual Basic)
GROUP BY-Klausel (Visual Basic)