Delen via


Overzicht: Gegevens bewerken (Visual Basic)

Deze procedure biedt een fundamenteel end-to-end LINQ voor SQL-scenario voor het toevoegen, wijzigen en verwijderen van gegevens in een database. U gebruikt een kopie van de northwind-voorbeelddatabase om een klant toe te voegen, de naam van een klant te wijzigen en een order te verwijderen.

Notitie

Mogelijk worden op uw computer verschillende namen of locaties weergegeven voor sommige elementen van de Visual Studio-gebruikersinterface in de volgende instructies. De Visual Studio-editie die u hebt en de instellingen die u gebruikt, bepalen deze elementen. Zie Personalizing the IDE (Personalizing the IDE) voor meer informatie.

Deze procedure is geschreven met behulp van Visual Basic Development Instellingen.

Vereisten

Voor dit scenario is het volgende vereist:

  • In dit scenario wordt gebruikgemaakt van een toegewezen map ('c:\linqtest2') voor het opslaan van bestanden. Maak deze map voordat u met de procedure begint.

  • De Northwind-voorbeelddatabase.

    Als u deze database niet op uw ontwikkelcomputer hebt, kunt u deze downloaden van de Microsoft-downloadsite. Zie Voorbeelddatabases downloaden voor instructies. Nadat u de database hebt gedownload, kopieert u het northwnd.mdf bestand naar de map c:\linqtest2.

  • Een Visual Basic-codebestand dat is gegenereerd op basis van de Northwind-database.

    U kunt dit bestand genereren met behulp van de Object Relational Designer of het hulpprogramma SQLMetal. Deze procedure is geschreven met behulp van het hulpprogramma SQLMetal met de volgende opdrachtregel:

    sqlmetal /code:"c:\linqtest2\northwind.vb" /language:vb "C:\linqtest2\northwnd.mdf" /pluralize

    Zie SqlMetal.exe (hulpprogramma voor het genereren van code) voor meer informatie.

Overzicht

Deze procedure bestaat uit zes hoofdtaken:

  • Het maken van de LINQ naar de SQL-oplossing in Visual Studio.

  • Voeg het databasecodebestand toe aan het project.

  • Een nieuw klantobject maken.

  • De naam van de contactpersoon van een klant wijzigen.

  • Een bestelling verwijderen.

  • Deze wijzigingen verzenden naar de Northwind-database.

Een LINQ maken naar SQL-oplossing

In deze eerste taak maakt u een Visual Studio-oplossing die de benodigde verwijzingen bevat om een LINQ te bouwen en uit te voeren naar een SQL-project.

Een LINQ naar SQL-oplossing maken

  1. Klik in het menu Visual Studio-bestand op Nieuw project.

  2. Klik in het deelvenster Projecttypen in het dialoogvenster Nieuw project op Visual Basic.

  3. Klik in het deelvenster Sjablonen op Consoletoepassing.

  4. Typ LinqDataManipulationApp in het vak Naam.

  5. Klik op OK.

LINQ-verwijzingen en -instructies toevoegen

In dit scenario worden assembly's gebruikt die mogelijk niet standaard in uw project worden geïnstalleerd. Als System.Data.Linq dit niet wordt vermeld als verwijzing in uw project (klik op Alle bestanden weergeven in Solution Explorer en vouw het knooppunt Verwijzingen uit), voegt u dit toe, zoals wordt uitgelegd in de volgende stappen.

System.Data.Linq toevoegen

  1. Klik in Solution Explorer met de rechtermuisknop op Verwijzingen en klik vervolgens op Verwijzing toevoegen.

  2. Klik in het dialoogvenster Verwijzing toevoegen op .NET, klik op de assembly System.Data.Linq en klik vervolgens op OK.

    De assembly wordt toegevoegd aan het project.

  3. Voeg in de code-editor de volgende instructies boven Module1 toe:

    Imports System.Data.Linq
    Imports System.Data.Linq.Mapping
    
    

Het Northwind-codebestand toevoegen aan het project

Bij deze stappen wordt ervan uitgegaan dat u het hulpprogramma SQLMetal hebt gebruikt om een codebestand te genereren uit de Northwind-voorbeelddatabase. Zie de sectie Vereisten eerder in dit scenario voor meer informatie.

Het northwind-codebestand toevoegen aan het project

  1. Klik in het menu Project op Bestaand item toevoegen.

  2. Navigeer in het dialoogvenster Bestaand item toevoegen naar c:\linqtest2\northwind.vb en klik vervolgens op Toevoegen.

    Het northwind.vb-bestand wordt toegevoegd aan het project.

De database-Verbinding maken ion instellen

Test eerst de verbinding met de database. Houd er rekening mee dat de naam van de database, Northwnd, geen i-teken heeft. Als u fouten genereert in de volgende stappen, bekijkt u het bestand northwind.vb om te bepalen hoe de gedeeltelijke klasse Northwind is gespeld.

De databaseverbinding instellen en testen

  1. Typ of plak de volgende code in Sub Main:

    ' Use a connection string, but connect to
    '     the temporary copy of the database.
    Dim db As New Northwnd _
        ("C:\linqtest2\northwnd.mdf")
    
    ' Keep the console window open after activity stops.
    Console.ReadLine()
    
  2. Druk op F5 om de toepassing op dit moment te testen.

    Er wordt een consolevenster geopend.

    Sluit de toepassing door in het consolevenster op Enter te drukken of door te klikken op Foutopsporing stoppen in het menu Foutopsporing in Visual Studio.

Een nieuwe entiteit maken

Het maken van een nieuwe entiteit is eenvoudig. U kunt objecten (zoals Customer) maken met behulp van het New trefwoord.

In deze en de volgende secties gaat u alleen wijzigingen aanbrengen in de lokale cache. Er worden geen wijzigingen naar de database verzonden totdat u het einde van deze procedure aanroept SubmitChanges .

Een nieuw klantentiteitsobject toevoegen

  1. Maak een nieuwe Customer door de volgende code toe te voegen vóór Console.ReadLine in Sub Main:

    ' Create the new Customer object.
    Dim newCust As New Customer()
    newCust.CompanyName = "AdventureWorks Cafe"
    newCust.CustomerID = "A3VCA"
    
    ' Add the customer to the Customers table.
    db.Customers.InsertOnSubmit(newCust)
    
    Console.WriteLine("Customers matching CA before insert:")
    
    Dim custQuery = _
        From cust In db.Customers _
        Where cust.CustomerID.Contains("CA") _
        Select cust
    
    For Each cust In custQuery
        Console.WriteLine("Customer ID: " & cust.CustomerID)
    Next
    
  2. Druk op F5 om fouten in de oplossing op te sporen.

    De resultaten die worden weergegeven in het consolevenster zijn als volgt:

    Customers matching CA before insert:

    Customer ID: CACTU

    Customer ID: RICAR

    De nieuwe rij wordt niet weergegeven in de resultaten. De nieuwe gegevens zijn nog niet naar de database verzonden.

  3. Druk op Enter in het consolevenster om de foutopsporing te stoppen.

Een entiteit bijwerken

In de volgende stappen haalt u een Customer object op en wijzigt u een van de eigenschappen.

De naam van een klant wijzigen

  • Voeg de volgende code hierboven Console.ReadLine()toe:

    Dim existingCust = _
        (From cust In db.Customers _
         Where cust.CustomerID = "ALFKI" _
         Select cust).First()
    
    ' Change the contact name of the customer.
    existingCust.ContactName = "New Contact"
    

Een entiteit verwijderen

Met hetzelfde klantobject kunt u de eerste bestelling verwijderen.

De volgende code laat zien hoe u relaties tussen rijen verbreekt en hoe u een rij uit de database verwijdert.

Een rij verwijderen

  • Voeg de volgende code net boven Console.ReadLine()toe:

    ' Access the first element in the Orders collection.
    Dim ord0 As Order = existingCust.Orders(0)
    
    ' Access the first element in the OrderDetails collection.
    Dim detail0 As OrderDetail = ord0.OrderDetails(0)
    
    ' Display the order to be deleted.
    Console.WriteLine _
        (vbCrLf & "The Order Detail to be deleted is: OrderID = " _
        & detail0.OrderID)
    
    ' Mark the Order Detail row for deletion from the database.
    db.OrderDetails.DeleteOnSubmit(detail0)
    

Wijzigingen verzenden naar de database

De laatste stap die nodig is voor het maken, bijwerken en verwijderen van objecten is het daadwerkelijk indienen van de wijzigingen in de database. Zonder deze stap zijn uw wijzigingen alleen lokaal en worden ze niet weergegeven in queryresultaten.

Wijzigingen verzenden naar de database

  1. Voeg de volgende code net boven Console.ReadLinein:

    db.SubmitChanges()
    
  2. Voeg de volgende code (na SubmitChanges) in om de voor- en naeffecten van het indienen van de wijzigingen weer te geven:

    Console.WriteLine(vbCrLf & "Customers matching CA after update:")
    Dim finalQuery = _
        From cust In db.Customers _
        Where cust.CustomerID.Contains("CA") _
        Select cust
    
    For Each cust In finalQuery
        Console.WriteLine("Customer ID: " & cust.CustomerID)
    Next
    
  3. Druk op F5 om fouten in de oplossing op te sporen.

    Het consolevenster wordt als volgt weergegeven:

    Customers matching CA before update:  
    Customer ID: CACTU  
    Customer ID: RICAR  
    
    The Order Detail to be deleted is: OrderID = 10643  
    
    Customers matching CA after update:  
    Customer ID: A3VCA  
    Customer ID: CACTU  
    Customer ID: RICAR  
    
  4. Druk op Enter in het consolevenster om de foutopsporing te stoppen.

Notitie

Nadat u de nieuwe klant hebt toegevoegd door de wijzigingen in te dienen, kunt u deze oplossing niet meer als zodanig uitvoeren, omdat u dezelfde klant niet opnieuw kunt toevoegen als is. Als u de oplossing opnieuw wilt uitvoeren, wijzigt u de waarde van de klant-id die moet worden toegevoegd.

Zie ook