Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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. Vzorek spočítá, sečte a průměruje výsledky pomocí klauzulí Aggregate a Group By. Další informace naleznete v části Agregační klauzule a klauzule GROUP BY.
Příklady v tomto článku používají ukázkovou databázi Northwind. Pokud chcete získat databázi, přečtěte si téma 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í.
Zadejte platné připojení k ukázkové databázi Northwind.
Přidání projektu, který obsahuje soubor LINQ to SQL
V prostředí Visual Studio v nabídce soubor zvolte Nový a potom klikněte na Projekt. Jako typ projektu vyberte Visual Basic Windows Forms Application.
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. Objektový relační návrhář (O/R Designer) je otevřen pro soubor northwind.dbml.
Přidat tabulky do dotazu v Návrháři O/R relací
V Průzkumník serveru/Průzkumník 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 podokna designéru. 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é
CustomeraOrderobjekty. 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 objektCustomermá vlastnostOrderspro 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.
Poklepáním na Form1 přidáte kód do události
Loadformuláře.Když jste přidali tabulky do Návrháře O/R, 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, 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
Loadpřidejte následující kód pro dotazování tabulek, které jsou dostupné jako vlastnosti DataContext a pro zpracování operací počítání, sčítání a průměrování výsledků. Ukázka používá klauzuliAggregatek dotazování na jeden výsledek a klauzuleGroup Byk zobrazení průměru seskupených výsledků.Dim db As New northwindDataContext Dim msg = "" Dim londonCustomerCount = Aggregate cust In db.Customers Where cust.City = "London" Into Count() msg &= "Count of London Customers: " & londonCustomerCount & vbCrLf Dim averageOrderCount = Aggregate cust In db.Customers Where cust.City = "London" Into Average(cust.Orders.Count) msg &= "Average number of Orders per customer: " & averageOrderCount & vbCrLf Dim venezuelaTotalOrders = Aggregate cust In db.Customers Where cust.Country = "Venezuela" Into Sum(cust.Orders.Count) msg &= "Total number of orders from Customers in Venezuela: " & venezuelaTotalOrders & vbCrLf MsgBox(msg) Dim averageCustomersByCity = From cust In db.Customers Group By cust.City Into Average(cust.Orders.Count) Order By Average DataGridView1.DataSource = averageCustomersByCity 'Another way to grab the count and sum londonCustomerCount = (From cust in db.Customers Where cust.City = "London").Count() venezuelaTotalOrders = (From cust in db.Customers Where cust.Country = "Venezuela" Select cust.Orders).Sum()Stisknutím klávesy F5 spusťte projekt a zobrazte výsledky.