Porady: sortowanie wyników zapytania przy użyciu LINQ (Visual Basic)
Language-Integrated Query (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 i sortuje wyniki według wielu pól przy użyciu klauzuli Order By
. Kolejność sortowania dla każdego pola może być kolejnością rosnącą lub malejącą. Aby uzyskać więcej informacji, zobacz Order By Clause.
Przykłady w tym artykule korzystają z przykładowej bazy danych Northwind. Aby uzyskać bazę danych, zobacz Pobieranie przykładowych baz danych.
Notatka
Na komputerze mogą być wyświetlane różne nazwy lub lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio w poniższych instrukcjach. Wersja programu Visual Studio i ustawienia, których używasz, określają te elementy. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.
Aby utworzyć połączenie z bazą danych
W programie Visual Studio otwórz Eksploratora serwera/Eksploratora baz danych, klikając Eksploratora serwera/Eksploratora baz danych w menu Widok.
Kliknij prawym przyciskiem myszy połączenia danych w Eksploratorze Server Explorer/Database Explorer, a następnie kliknij przycisk Dodaj połączenie.
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ę Visual Basic Aplikacja Windows Forms jako typ projektu.
W menu projektu kliknij pozycję Dodaj nowy element. Wybierz szablon elementu LINQ to SQL Classes.
Nadaj plikowi nazwę
northwind.dbml
. Kliknij Dodaj. Projektant relacyjny obiektu (O/R Designer) jest otwarty dla pliku northwind.dbml.
Aby dodać tabele do wykonywania zapytań do projektanta O/R
W Eksploratorze serwera /Eksploratora baz danychrozwiń połączenie z bazą danych Northwind. Rozwiń folder Tables.
Jeśli zamknąłeś projektanta O/R, możesz ponownie go otworzyć, klikając dwukrotnie plik northwind.dbml, który dodałeś wcześniej.
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 obiekty
Customer
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, że obiektCustomer
ma właściwośćOrders
dla wszystkich zamówień powiązanych z tym klientem.Zapisz zmiany i zamknij projektanta.
Zapisz projekt.
Aby dodać kod do wysłania zapytania do bazy danych i wyświetlenia wyników
Z przybornika przeciągnij kontrolkę DataGridView na domyślny formularz systemu Windows dla projektu Form1.
Kliknij dwukrotnie formularz Form1, aby dodać kod do zdarzenia
Load
formularza.Kiedy dodałeś tabel do projektanta O/R, projektant dodał do twojego projektu obiekt DataContext. Ten obiekt zawiera kod, który jest potrzebny, aby uzyskać dostęp do tych tabel oraz do poszczególnych obiektów i kolekcji każdej tabeli. Obiekt DataContext dla projektu jest nazwany na podstawie nazwy pliku dbml. W tym projekcie obiekt DataContext ma nazwę
northwindDataContext
.Możesz utworzyć wystąpienie DataContext w kodzie i wykonać zapytanie o tabele określone przez projektanta O/R.
Dodaj następujący kod do zdarzenia
Load
, aby wysłać zapytanie do tabel uwidocznionych jako właściwości kontekstu danych i posortować wyniki. Zapytanie sortuje wyniki według liczby zamówień klientów w kolejności malejącej. Klienci, którzy mają taką samą liczbę zamówień, są porządkowani według nazwy firmy w porządku rosnącym.Dim db As New northwindDataContext Dim q = From cust In db.Customers Where cust.Orders.Count > 0 Select cust.CustomerID, cust.CompanyName, OrderCount = cust.Orders.Count, cust.Country Order By OrderCount Descending, CompanyName DataGridView1.DataSource = q
Naciśnij F5, aby uruchomić projekt i wyświetlić wyniki.
Zobacz też
- LINQ
- Zapytania
- LINQ to SQL
- metody DataContext (O/R Designer)