Sdílet prostřednictvím


Postupy: Řazení 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 seřadí výsledky podle více polí pomocí klauzule Order By. Pořadí řazení pro každé pole může být vzestupné nebo sestupné. Další informace naleznete v tématu Order By Klauzule.

Příklady v tomto článku používají ukázkovou databázi Northwind. Chcete-li získat databázi, podívejte se na stahování 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

  1. 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í .

  2. 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í.

  3. Zadejte platné připojení pro ukázkovou databázi Northwind.

Přidání projektu, který obsahuje soubor LINQ to SQL

  1. V sadě Visual Studio v nabídce Soubor vyberte možnost Nový a potom klepněte na tlačítko Projekt. Jako typ projektu vyberte Visual Basic Windows Forms Application.

  2. V nabídce Project klikněte na Přidat novou položku. Vyberte šablonu položky LINQ to SQL třídy.

  3. 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 do dotazu v Návrháři objektově-relačních relací

  1. 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.

  2. 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ářského rozhraní.

    Návrhář pro váš projekt vytvoří nové Customer a Order 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 objekt Customer má vlastnost Orders pro všechny objednávky související s tímto zákazníkem.

  3. Uložte změny a zavřete návrháře.

  4. Uložte projekt.

Přidání kódu pro dotazování databáze a zobrazení výsledků

  1. Ze Panelu nástrojůpřetáhněte ovládací prvek DataGridView do výchozího formuláře Windows Form pro váš projekt Form1.

  2. Poklikáním na Form1 přidáte kód do události Load formuláře.

  3. Po přidání tabulek do O/R návrháře přidal návrhář do projektu objekt DataContext. Tento objekt obsahuje kód, který musíte mít pro přístup k těmto tabulkám, a pro přístup k jednotlivým objektům a kolekcím 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, a seřaďte výsledky. Dotaz seřadí výsledky podle počtu objednávek zákazníků v sestupném pořadí. Zákazníci se stejným počtem objednávek jsou seřazeni podle názvu společnosti ve vzestupném pořadí (výchozí nastavení).

    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
    
  4. Stisknutím klávesy F5 spusťte projekt a zobrazte výsledky.

Viz také