Postupy: Změna dat v databázi pomocí LINQ (Visual Basic)
Dotazy LINQ (Language-Integrated Query) usnadňují přístup k informacím o databázi a úpravám hodnot v databázi.
Následující příklad ukazuje, jak vytvořit novou aplikaci, která načítá a aktualizuje informace v databázi SQL Serveru.
Příklady v tomto tématu používají ukázkovou databázi Northwind. Pokud tuto databázi nemáte na vývojovém počítači, můžete ji stáhnout z webu Stažení softwaru společnosti Microsoft. Pokyny najdete v tématu Stažení ukázkových databází.
Vytvoření připojení k databázi
V sadě Visual Studio otevřete Průzkumníka/ databáze serveru kliknutím na nabídku Zobrazit a pak vyberte Průzkumník databáze Průzkumníka/ serveru.
V Průzkumníku databáze Průzkumníka/serveru klikněte pravým tlačítkem myši na Data Připojení ion a klikněte na Přidat Připojení ion.
Zadejte platné připojení k ukázkové databázi Northwind.
Přidání projektu se souborem LINQ to SQL
V sadě Visual Studio v nabídce Soubor přejděte na příkaz Nový a klepněte na příkaz Projekt. Jako typ projektu vyberte Visual Basic model Windows Forms Application.
V nabídce Projekt klepněte na tlačítko Přidat novou položku. Vyberte šablonu položky třídy LINQ to SQL.
Pojmenujte soubor
northwind.dbml
. Klikněte na tlačítko Přidat. Pro soubor se otevřenorthwind.dbml
Návrhář relací objektů (Návrhář relací objektů).
Přidání tabulek k dotazování a úpravě do návrháře
V Průzkumníku databáze Serveru/ 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
northwind.dbml
soubor, 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.
Návrhář pro váš projekt vytvoří nový objekt Zákazník.
Uložte změny a zavřete návrháře.
Uložte projekt.
Přidání kódu pro úpravu databáze a zobrazení výsledků
Z panelu nástrojů přetáhněte DataGridView ovládací prvek na výchozí formulář Windows Form pro váš projekt Form1.
Když jste do Návrháře relací objektů přidali tabulky, návrhář do projektu přidal DataContext objekt. Tento objekt obsahuje kód, který můžete použít pro přístup k tabulce Zákazníci. Obsahuje také kód, který definuje místní objekt Zákazník a kolekci Customers pro tabulku. Objekt DataContext projektu je pojmenován na základě názvu souboru .dbml. Pro tento projekt DataContext je objekt pojmenován
northwindDataContext
.V kódu můžete vytvořit instanci objektu DataContext a dotazovat a upravit kolekci Customers určenou Návrhářem relací objektů. Změny provedené v kolekci Customers se v databázi neprojeví, dokud je neodesílají voláním SubmitChanges metody objektu DataContext .
Poklikejte na formulář Windows Form, Form1 a přidejte do události kód Load pro dotazování na tabulku Customers, která je vystavena jako vlastnost vašeho DataContext. Přidejte následující kód:
Private db As northwindDataContext Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles MyBase.Load db = New northwindDataContext() RefreshData() End Sub Private Sub RefreshData() Dim customers = From cust In db.Customers Where cust.City(0) = "W" Select cust DataGridView1.DataSource = customers End Sub
Z panelu nástrojů přetáhněte tři Button ovládací prvky do formuláře. Vyberte první
Button
ovládací prvek. V okně Vlastnosti nastavteName
ovládací prvekButton
naAddButton
a naText
hodnotuAdd
. Vyberte druhé tlačítko a nastavteName
vlastnostUpdateButton
na hodnotu aText
vlastnost naUpdate
hodnotu . Vyberte třetí tlačítko a nastavteName
vlastnostDeleteButton
na hodnotu aText
vlastnost naDelete
hodnotu .Poklikáním na tlačítko Přidat přidáte kód do události
Click
. Přidejte následující kód:Private Sub AddButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles AddButton.Click Dim cust As New Customer With { .City = "Wellington", .CompanyName = "Blue Yonder Airlines", .ContactName = "Jill Frank", .Country = "New Zealand", .CustomerID = "JILLF"} db.Customers.InsertOnSubmit(cust) Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Poklikáním na tlačítko Aktualizovat přidejte kód do události
Click
. Přidejte následující kód:Private Sub UpdateButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs ) Handles UpdateButton.Click Dim updateCust = (From cust In db.Customers Where cust.CustomerID = "JILLF").ToList()(0) updateCust.ContactName = "Jill Shrader" updateCust.Country = "Wales" updateCust.CompanyName = "Red Yonder Airlines" updateCust.City = "Cardiff" Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Poklikáním na tlačítko Odstranit přidáte kód do události
Click
. Přidejte následující kód:Private Sub DeleteButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs ) Handles DeleteButton.Click Dim deleteCust = (From cust In db.Customers Where cust.CustomerID = "JILLF").ToList()(0) db.Customers.DeleteOnSubmit(deleteCust) Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Stisknutím klávesy F5 spusťte projekt. Kliknutím na Přidat přidáte nový záznam. Chcete-li upravit nový záznam, klikněte na tlačítko Aktualizovat . Kliknutím na Odstranit odstraníte nový záznam.