Postupy: Filtrování výsledků dotazu pomocí LINQ (Visual Basic)
Language-Integrated Query (LINQ) usnadňuje přístup k informacím o databázi a spouštění dotazů.
Následující příklad ukazuje, jak vytvořit novou aplikaci, která provádí dotazy na databázi SQL Serveru a filtruje výsledky podle konkrétní hodnoty pomocí klauzule Where
. Další informace naleznete v tématu Příkaz WHERE.
Příklady v tomto článku používají ukázkovou databázi Northwind. Pokud chcete získat databázi, viz stažení ukázkových dat.
Poznámka
Počítač může v následujících pokynech zobrazit různé názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Edice sady Visual Studio, kterou máte, a nastavení, která používáte, určují tyto prvky. Další informace najdete v tématu Přizpůsobeníintegrovaného vývojového prostředí (IDE).
Vytvoření připojení k databázi
Ve Visual Studiu otevřete Průzkumník serveru /a Průzkumník databáze kliknutím na Průzkumník serveru /a Průzkumník databáze v nabídce Zobrazení .
Klepněte pravým tlačítkem myši na Připojení k datům v Průzkumník serverů/Průzkumník databází a pak klikněte na Přidat připojení.
Zadejte platné připojení k ukázkové databázi Northwind.
Přidání projektu, který obsahuje soubor LINQ to SQL
V sadě Visual Studio v nabídce Soubor vyberte Nový a potom klepněte na Projekt. Jako typ projektu vyberte Visual Basic aplikaci Windows Forms.
V nabídce Project klikněte na Přidat novou položku. Vyberte šablonu položky Třídy LINQ to SQL.
Pojmenujte soubor
northwind.dbml
. Klikněte na Přidat. Otevře se objektový relační návrhář (Návrhář relací objektů) pro soubor northwind.dbml.
Přidání tabulek do dotazu v Návrháři O/R.
Ve Průzkumníku serveru/, v Průzkumníku databází, rozbalte připojení k databázi Northwind. Rozbalte složku Tabulky.
Pokud jste návrhář relací zavřeli, můžete ho znovu otevřít poklikáním na soubor northwind.dbml, který jste přidali dříve.
Klikněte na tabulku Zákazníci a přetáhněte ji do levého panelu návrháře. Klikněte na tabulku Objednávky a přetáhněte ji do levého podokna návrháře.
Návrhář pro váš projekt vytvoří nové
Customer
aOrder
objekty. Všimněte si, že návrhář automaticky rozpozná relace mezi tabulkami a vytvoří podřízené vlastnosti pro související objekty. IntelliSense například zobrazí, že objektCustomer
má vlastnostOrders
pro všechny objednávky související s tímto zákazníkem.Uložte změny a zavřete návrháře.
Uložte projekt.
Přidání kódu pro dotazování databáze a zobrazení výsledků
Ze Panelu nástrojůpřetáhněte ovládací prvek DataGridView do výchozího formuláře Windows Form pro váš projekt Form1.
Poklikáním na Form1 přidáte kód k události
Load
formuláře.Když jste přidali tabulky do O/R návrháře, návrhář přidal objekt DataContext pro váš projekt. Tento objekt obsahuje kód, který musíte mít pro přístup k těmto tabulkám, kromě jednotlivých objektů a kolekcí pro každou tabulku. Objekt DataContext pro váš projekt je pojmenován na základě názvu souboru .dbml. Pro tento projekt má objekt DataContext název
northwindDataContext
.V kódu můžete vytvořit instanci DataContext a dotazovat se na tabulky určené Návrhářem relací objektů.
Do události
Load
přidejte následující kód pro dotazování tabulek, které jsou vystavené jako vlastnosti kontextu dat. Dotaz vyfiltruje výsledky a vrátí pouze zákazníky, kteří se nacházejí vLondon
.Dim db As New northwindDataContext Dim customers_London = From cust In db.Customers Where cust.City = "London" Select cust.CustomerID, cust.CompanyName, OrderCount = cust.Orders.Count, cust.City, cust.Country DataGridView1.DataSource = customers_London
Stisknutím klávesy F5 spusťte projekt a zobrazte výsledky.
Následuje několik dalších filtrů, které můžete vyzkoušet.
Dim companies_H = From cust In db.Customers Where cust.Orders.Count > 0 And cust.CompanyName.StartsWith("H") Select cust.CustomerID, cust.CompanyName, OrderCount = cust.Orders.Count, cust.Country Dim customers_USA = From cust In db.Customers Where cust.Orders.Count > 15 And cust.Country = "USA" Select cust.CustomerID, cust.CompanyName, OrderCount = cust.Orders.Count, cust.Country
Viz také
- LINQ
- dotazy
- LINQ to SQL
- metody DataContext (Návrhář relací objektů)