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

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

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

  3. Zadejte platné připojení k ukázkové databázi Northwind.

Přidání projektu se souborem LINQ to SQL

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

  2. V nabídce Projekt klepněte na tlačítko Přidat novou položku. Vyberte šablonu položky třídy LINQ to SQL.

  3. Pojmenujte soubor northwind.dbml. Klikněte na tlačítko Přidat. Pro soubor se otevře northwind.dbml Návrhář relací objektů (Návrhář relací objektů).

Přidání tabulek k dotazování a úpravě do návrháře

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

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

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

  4. Uložte projekt.

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

  1. Z panelu nástrojů přetáhněte DataGridView ovládací prvek na výchozí formulář Windows Form pro váš projekt Form1.

  2. 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
    
  3. 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 nastavte Name ovládací prvek Button na AddButton a na Text hodnotu Add. Vyberte druhé tlačítko a nastavte Name vlastnost UpdateButton na hodnotu a Text vlastnost na Updatehodnotu . Vyberte třetí tlačítko a nastavte Name vlastnost DeleteButton na hodnotu a Text vlastnost na Deletehodnotu .

  4. 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
    
  5. 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
    
  6. 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
    
  7. 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.

Viz také