Delen via


Procedure: Gegevens in een database wijzigen met behulp van LINQ (Visual Basic)

Met LINQ-query's (Language-Integrated Query) hebt u eenvoudig toegang tot databasegegevens en kunt u waarden in de database wijzigen.

In het volgende voorbeeld ziet u hoe u een nieuwe toepassing maakt waarmee informatie in een SQL Server-database wordt opgehaald en bijgewerkt.

In de voorbeelden in dit onderwerp wordt de voorbeelddatabase Northwind gebruikt. Als u deze database niet op uw ontwikkelcomputer hebt, kunt u deze downloaden via het Microsoft Downloadcentrum. Zie Voorbeelddatabases downloaden voor instructies.

Een verbinding met een database maken

  1. Open Server Explorer/Database Explorer in Visual Studio door op het menu Beeld te klikken en vervolgens Server Explorer/Database Explorer te selecteren.

  2. Klik met de rechtermuisknop op Gegevens Verbinding maken ions in Server Explorer/Database Explorer en klik op Verbinding maken ion toevoegen.

  3. Geef een geldige verbinding op met de northwind-voorbeelddatabase.

Een project met een LINQ toevoegen aan een SQL-bestand

  1. Wijs in Visual Studio in het menu Bestand de optie Nieuw aan en klik vervolgens op Project. Selecteer Visual Basic Windows Forms Application als projecttype.

  2. Klik in het menu Project op Nieuw item toevoegen. Selecteer de ITEMsjabloon LINQ naar SQL-klassen .

  3. Noem het bestand northwind.dbml. Klik op Toevoegen. De Object Relational Designer (O/R Designer) wordt geopend voor het northwind.dbml bestand.

Tabellen toevoegen om query's uit te voeren en te wijzigen in de ontwerpfunctie

  1. Vouw in Server Explorer/Database Explorer de verbinding met de Northwind-database uit. Vouw de map Tabellen uit.

    Als u de ontwerpfunctie voor O/R hebt gesloten, kunt u deze opnieuw openen door te dubbelklikken op het northwind.dbml bestand dat u eerder hebt toegevoegd.

  2. Klik op de tabel Klanten en sleep deze naar het linkerdeelvenster van de ontwerpfunctie.

    De ontwerpfunctie maakt een nieuw klantobject voor uw project.

  3. Sla uw wijzigingen op en sluit de ontwerpfunctie.

  4. Sla uw project op.

Code toevoegen om de database te wijzigen en de resultaten weer te geven

  1. Sleep vanuit de werkset een DataGridView besturingselement naar het standaard Windows-formulier voor uw project, Form1.

  2. Wanneer u tabellen hebt toegevoegd aan O/R Designer, heeft de ontwerper een DataContext object aan uw project toegevoegd. Dit object bevat code die u kunt gebruiken voor toegang tot de tabel Klanten. Het bevat ook code die een lokaal klantobject en een verzameling Klanten voor de tabel definieert. Het DataContext object voor uw project heeft een naam op basis van de naam van uw .dbml-bestand. Voor dit project heeft het object de DataContext naam northwindDataContext.

    U kunt een exemplaar van het DataContext object maken in uw code en query's uitvoeren en de verzameling Klanten wijzigen die is opgegeven door de O/R Designer. Wijzigingen die u aanbrengt in de verzameling Klanten worden pas doorgevoerd in de database nadat u ze hebt ingediend door de SubmitChanges methode van het DataContext object aan te roepen.

    Dubbelklik op het Windows-formulier, Form1, om code toe te voegen aan de Load gebeurtenis om een query uit te voeren op de tabel Klanten die wordt weergegeven als een eigenschap van uw DataContext. Voeg de volgende code toe:

    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. Sleep vanuit de werkset drie Button besturingselementen naar het formulier. Selecteer het eerste Button besturingselement. Stel in het venster Eigenschappen het NameButton besturingselement AddButton in op en op TextAdd. Selecteer de tweede knop en stel de Name eigenschap UpdateButton in op en de Text eigenschap op Update. Selecteer de derde knop en stel de Name eigenschap DeleteButton in op en de Text eigenschap op Delete.

  4. Dubbelklik op de knop Toevoegen om code toe te voegen aan de Click gebeurtenis. Voeg de volgende code toe:

    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. Dubbelklik op de knop Bijwerken om code toe te voegen aan de Click gebeurtenis. Voeg de volgende code toe:

    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. Dubbelklik op de knop Verwijderen om code toe te voegen aan de Click gebeurtenis. Voeg de volgende code toe:

    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. Druk op F5 om het project uit te voeren. Klik op Toevoegen om een nieuwe record toe te voegen. Klik op Bijwerken om de nieuwe record te wijzigen. Klik op Verwijderen om de nieuwe record te verwijderen.

Zie ook