Vorgehensweise: Suchen des Minimal- oder Maximalwerts in einem Abfrageergebnis mithilfe von LINQ (Visual Basic)
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. Im Beispiel werden die Mindest- und Höchstwerte für die Ergebnisse mithilfe der klauseln Aggregate
und Group By
bestimmt. 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 unter Personalisierung der IDE.
Erstellen einer Verbindung mit einer Datenbank
Öffnen Sie in Visual Studio Server-Explorer/Datenbank-Explorer, indem Sie im Menü Ansichtauf Server-Explorer/-Datenbank-Explorer klicken.
Klicken Sie mit der rechten Maustaste auf Datenverbindungen im Server Explorer/Datenbank Explorer und klicken Sie dann auf Verbindung hinzufügen.
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
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ü Project auf Neues Element hinzufügen. Wählen Sie die LINQ to SQL Classes Element-Vorlage aus.
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.
Hinzufügen von Tabellen zur Abfrage im O/R-Designer
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.
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
undOrder
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 dasCustomer
-Objekt eineOrders
Eigenschaft für alle Bestellungen aufweist, die mit diesem Kunden zusammenhängen.Speichern Sie Ihre Änderungen, und schließen Sie den Designer.
Speichern Sie Ihr Projekt.
Hinzufügen von Code zum Abfragen der Datenbank und Anzeigen der Ergebnisse
Ziehen Sie aus der Toolbox ein DataGridView-Steuerelement auf das Windows-Standardformular „Form1“ Ihres Projekts.
Doppelklicken Sie auf "Formular1", um dem
Load
Ereignis des Formulars Code hinzuzufügen.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, zusätzlich zu einzelnen Objekten und Auflistungen für jede Tabelle. Das DataContext-Objekt für Ihr Projekt wird basierend auf dem Namen der DBML-Datei benannt. Für dieses Projekt wird das DataContext-Objekt
northwindDataContext
benannt.Sie können eine Instanz des DataContext in Ihrem Code erstellen und die vom O/R-Designer angegebenen Tabellen abfragen.
Fügen Sie dem
Load
-Ereignis den folgenden Code hinzu. Dieser Code fragt die Tabellen ab, die als Eigenschaften des Datenkontexts verfügbar gemacht werden, und bestimmt die Mindest- und Höchstwerte für die Ergebnisse. Im Beispiel wird dieAggregate
-Klausel verwendet, um ein einzelnes Ergebnis abzufragen, und dieGroup By
-Klausel, um einen Mittelwert für gruppierte Ergebnisse anzuzeigen.Dim db As New northwindDataContext Dim minimumOrders = Aggregate cust In db.Customers Where cust.City = "London" Into Min(cust.Orders.Count) MsgBox("Minimum Orders from a London Customer: " & minimumOrders) Dim maximumOrdersByCountry = From cust In db.Customers Group By cust.Country Into MaxOrders = Max(cust.Orders.Count) DataGridView1.DataSource = maximumOrdersByCountry
Drücken Sie F5-, um Ihr Projekt auszuführen und die Ergebnisse anzuzeigen.