Postupy: Úprava dat v databázi pomocí LINQ (Visual Basic)
Language-Integrated dotazy (LINQ) usnadňují přístup k informacím z databáze a k úpravě 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 článku používají ukázkovou databázi Northwind. Chcete-li získat databázi, viz Stahování ukázkových databází.
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 nabídku Zobrazit a potom vyberte Průzkumníka serveru/Průzkumníka databáze.
Klepněte pravým tlačítkem myši na Datová připojení v Průzkumníku serveru /, Průzkumníku databázea klepněte na tlačítko Přidat připojení.
Zadejte platné připojení k ukázkové databázi Northwind.
Přidání projektu se souborem LINQ to SQL
Ve Visual Studiu v nabídce Soubor přejděte na Nový a potom klikněte na Project. Jako typ projektu vyberte aplikaci Windows Forms ve Visual Basic .
V nabídce Project klikněte na Přidat novou položku. Vyberte šablonu položky LINQ to SQL Classes.
Pojmenujte soubor
northwind.dbml
. Klikněte na Přidat. Objektový relační návrhář (Návrhář relací objektů) je otevřen pronorthwind.dbml
soubor.
Přidejte tabulky k dotazování a úpravám do návrháře.
V Průzkumník serveru/Průzkumník databázerozbalte připojení k databázi Northwind. Rozbalte složku Tabulky.
Pokud jste zavřeli O/R návrhář, můžete ho znovu otevřít dvojitým kliknutí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 panelu 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ů
Ze Panelu nástrojůpřetáhněte ovládací prvek DataGridView do výchozího formuláře Windows Form pro váš projekt Form1.
Po tom, co jste přidali tabulky do Návrháře relací objektů, přidal návrhář do projektu objekt DataContext. 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 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 objektu DataContext a dotazovat a upravovat kolekci Customers, kterou určil Návrhář mapování objektově-relačních struktur. Změny provedené v kolekci Customers se v databázi neprojeví, dokud je neodešlete voláním SubmitChanges metody DataContext objektu.
Dvojitým kliknutím na Windows Form, Form1, přidejte kód do události Load, abyste dotázali tabulku Customers, která je dostupná 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
Ze panelu nástrojůpřetáhněte tři ovládací prvky Button do formuláře. Vyberte první ovládací prvek
Button
. V okně vlastnosti nastavteName
ovládacího prvkuButton
naAddButton
aText
naAdd
. Vyberte druhé tlačítko a nastavte vlastnostName
naUpdateButton
a vlastnostText
naUpdate
. Vyberte třetí tlačítko a nastavte vlastnostName
naDeleteButton
a vlastnostText
naDelete
.Poklikejte na tlačítko Přidat pro přidání kódu 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
Dvakrát klikněte na tlačítko Odstranit, abyste přidali kód do jeho 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řidejte nový záznam. Kliknutím na Aktualizovat upravte nový záznam. Kliknutím na Odstranit nový záznam odstraníte.