Sdílet prostřednictvím


Postupy: Dotazování databáze 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.

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

  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í k ukázkové databázi Northwind.

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

  1. Ve Visual Studiu v nabídce soubor přejděte na Nový a potom klepněte na Projekt. Jako typ projektu vyberte Visual Basic aplikaci Windows Forms .

  2. V nabídce Project klikněte na Přidat novou položku. Vyberte položku šablony 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 pro dotaz do Návrháře relací objektů

  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 panelu návrháře. Klikněte na tabulku Objednávky a přetáhněte ji do levého podokna editoru.

    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 Load události formuláře.

  3. Po přidání tabulek do O/R Designer přidal návrhář 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.

    Dim db As New northwindDataContext
    
    Dim londonCusts = From cust In db.Customers
                      Where cust.City = "London"
                      Select cust
    
    DataGridView1.DataSource = londonCusts
    
  4. Stisknutím klávesy F5 spusťte projekt a zobrazte výsledky.

  5. Tady jsou některé další dotazy, které můžete vyzkoušet:

    Dim londonCustOrders = From cust In db.Customers,
                                ord In cust.Orders
                           Where cust.City = "London"
                           Order By ord.OrderID
                           Select cust.City, ord.OrderID, ord.OrderDate
    
    DataGridView1.DataSource = londonCustOrders
    
    Dim custs = From cust In db.Customers
                Where cust.Country = "France" And
                    (cust.CompanyName.StartsWith("F") Or
                     cust.CompanyName.StartsWith("V"))
                Order By cust.CompanyName
                Select cust.CompanyName, cust.City
    
    DataGridView1.DataSource = custs
    

Viz také