Postupy: Vyhledání minimální nebo maximální hodnoty ve výsledku 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. Ukázka určuje minimální a maximální hodnoty výsledků pomocí Aggregate
a Group By
klauzulí. Další informace naleznete v tématu Agregační klauzule a Klauzule Group By.
Příklady v tomto článku používají ukázkovou databázi Northwind. Chcete-li získat databázi, viz stažení ukázkových databází.
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
V sadě Visual Studio otevřete průzkumníka serveru/Průzkumníka databáze kliknutím na Průzkumníka serveru/Průzkumníka databáze v nabídce Zobrazení.
Klepněte pravým tlačítkem myši Datová připojení v Průzkumník serveru/Průzkumník databáze a klepněte na tlačítko Přidat připojení.
Určete 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 přejděte na příkaz Nový a potom klepněte na tlačítko Projekt. Jako typ projektu vyberte Visual Basic Windows Forms Application .
V nabídce Project klikněte na Přidat novou položku. Vyberte položku šablony LINQ to SQL Classes.
Pojmenujte soubor
northwind.dbml
. Klikněte na Přidat. Objektový relační návrhář (O/R Designer) je otevřen pro soubor northwind.dbml.
Přidání tabulek k dotazování do Návrháře relací objektů
V Průzkumník serveru/Průzkumník databázerozbalte 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 podokna 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 do události
Load
formuláře.Když jste přidali tabulky do Návrháře O/R, návrhář automaticky 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. Tento kód se dotazuje tabulek, které jsou vystaveny jako vlastnosti kontextu dat, a určuje minimální a maximální hodnoty pro výsledky. Ukázka používá klauzuliAggregate
k dotazování na jeden výsledek a klauzuleGroup By
k zobrazení průměru seskupených výsledků.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
Stisknutím klávesy F5 spusťte projekt a zobrazte výsledky.
Viz také
- LINQ
- Dotazy
- LINQ to SQL
- metody DataContext (Návrhář relací objektů)