Porady: znajdowanie wartości minimalnej lub maksymalnej w wyniku zapytania za pomocą LINQ (Visual Basic)
Zapytanie zintegrowane z językiem (LINQ) ułatwia uzyskiwanie dostępu do informacji o bazie danych i wykonywanie zapytań.
W poniższym przykładzie pokazano, jak utworzyć nową aplikację, która wykonuje zapytania względem bazy danych programu SQL Server. Przykład określa minimalne i maksymalne wartości dla wyników przy użyciu Aggregate
klauzul i Group By
. Aby uzyskać więcej informacji, zobacz Agregacja klauzuli i Klauzula Grupuj według.
W przykładach w tym temacie użyto przykładowej bazy danych Northwind. Jeśli nie masz tej bazy danych na komputerze dewelopera, możesz pobrać ją z Centrum pobierania Microsoft. Aby uzyskać instrukcje, zobacz Pobieranie przykładowych baz danych.
Uwaga
Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.
Tworzenie połączenia z bazą danych
W programie Visual Studio otwórz Eksploratora baz danych Eksploratora/serwera, klikając Eksploratora baz danych Eksploratora/serwera w menu Widok.
Kliknij prawym przyciskiem myszy pozycję Połączenie ions danych w Eksploratorze baz danych Eksploratora/ serwera, a następnie kliknij polecenie Dodaj Połączenie ion.
Określ prawidłowe połączenie z przykładową bazą danych Northwind.
Aby dodać projekt zawierający plik LINQ to SQL
W programie Visual Studio w menu Plik wskaż polecenie Nowy , a następnie kliknij pozycję Projekt. Wybierz pozycję Aplikacja formularzy systemu Windows w języku Visual Basic jako typ projektu.
W menu Project (Projekt) kliknij pozycję Add New Item (Dodaj nowy element). Wybierz szablon elementu KLASY LINQ to SQL.
Nazwij plik
northwind.dbml
. Kliknij przycisk Dodaj. Dla pliku northwind.dbml jest otwierana Projektant relacyjna (O/R Projektant).
Dodawanie tabel do zapytania do Projektant O/R
W Eksploratorze bazy danych Eksploratora/ serwera rozwiń połączenie z bazą danych Northwind. Rozwiń folder Tables.
Jeśli zamknięto Projektant O/R, możesz go ponownie otworzyć, klikając dwukrotnie dodany wcześniej plik northwind.dbml.
Kliknij tabelę Customers (Klienci) i przeciągnij ją do lewego okienka projektanta. Kliknij tabelę Orders (Zamówienia) i przeciągnij ją do lewego okienka projektanta.
Projektant tworzy nowe
Customer
obiekty iOrder
dla projektu. Zwróć uwagę, że projektant automatycznie wykrywa relacje między tabelami i tworzy właściwości podrzędne dla powiązanych obiektów. Na przykład funkcja IntelliSense pokaże, żeCustomer
obiekt maOrders
właściwość dla wszystkich zamówień powiązanych z tym klientem.Zapisz zmiany i zamknij projektanta.
Zapisz projekt.
Dodawanie kodu w celu wykonywania zapytań względem bazy danych i wyświetlania wyników
Z przybornika przeciągnij kontrolkę DataGridView do domyślnego formularza systemu Windows dla projektu Form1.
Kliknij dwukrotnie formularz Form1, aby dodać kod do
Load
zdarzenia formularza.Po dodaniu tabel do Projektant O/R projektant dodał DataContext obiekt dla projektu. Ten obiekt zawiera kod, który musi mieć dostęp do tych tabel, oprócz poszczególnych obiektów i kolekcji dla każdej tabeli. DataContext Obiekt projektu ma nazwę na podstawie nazwy pliku dbml. W tym projekcie DataContext obiekt ma nazwę
northwindDataContext
.Możesz utworzyć wystąpienie DataContext obiektu w kodzie i wykonać zapytanie o tabele określone przez Projektant O/R.
Dodaj następujący kod do
Load
zdarzenia. Ten kod wysyła zapytanie do tabel, które są uwidocznione jako właściwości kontekstu danych i określa minimalne i maksymalne wartości dla wyników. W przykładzie użyto klauzuliAggregate
, aby utworzyć zapytanie dotyczące pojedynczego wyniku, orazGroup By
klauzulę , aby wyświetlić średnią dla pogrupowanych wyników.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
Naciśnij klawisz F5 , aby uruchomić projekt i wyświetlić wyniki.