Freigeben über


Exemplarische Vorgehensweise: Bearbeiten von Daten (Visual Basic) (LINQ to SQL)

Aktualisiert: November 2007

Diese exemplarische Vorgehensweise stellt ein wesentliches End-to-End-Szenario für LINQ to SQL für das Hinzufügen, Ändern und Löschen von Daten in einer Datenbank bereit. Sie werden eine Kopie der Beispieldatenbank Northwind verwenden, um einen Kunden hinzuzufügen, den Namen des Kunden zu ändern und eine Bestellung zu löschen.

Hinweis:

Ihr Computer zeigt für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung möglicherweise andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Diese exemplarische Vorgehensweise wurde mithilfe von Visual Basic-Entwicklungseinstellungen geschrieben.

Vorbereitungsmaßnahmen

Für diese exemplarische Vorgehensweise wird Folgendes vorausgesetzt:

  • Diese exemplarische Vorgehensweise verwendet einen dedizierten Ordner ("c:\linqtest2") als Speicherort für Dateien. Erstellen Sie diesen Ordner, bevor Sie die exemplarische Vorgehensweise starten.

  • Die Beispieldatenbank Northwind.

    Befindet sich diese Datenbank nicht auf Ihrem Entwicklungscomputer, können Sie diese von der Microsoft Downloadsite herunterladen. Anweisungen dazu finden Sie unter Herunterladen von Beispieldatenbanken (LINQ to SQL). Nachdem Sie die Datenbank heruntergeladen haben, kopieren Sie die Datei northwnd.mdf in den Ordner c:\linqtest2.

  • Eine von der Datenbank Northwind generierte Visual Basic-Codedatei.

    Sie können diese Datei erzeugen, indem Sie entweder den O/R-Designer oder das SQLMetal-Tool verwenden. Diese exemplarische Vorgehensweise wurde mithilfe des SQLMetal-Tools mit der folgenden Befehlszeile geschrieben:

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

    Weitere Informationen finden Sie unter Tool zur Codegenerierung (SqlMetal.exe).

Übersicht

Diese exemplarische Vorgehensweise umfasst sechs Hauptaufgaben:

  • Erstellen der LINQ to SQL-Lösung in Visual Studio.

  • Hinzufügen der Datenbank-Codedatei zum Projekt.

  • Erstellen eines neuen Kundenobjekts.

  • Ändern des Kontaktnamens eines Kunden.

  • Löschen einer Bestellung.

  • Übergeben dieser Änderungen an der Datenbank Northwind.

Erstellen einer LINQ to SQL-Lösung

In dieser ersten Aufgabe erstellen Sie eine Visual Studio-Lösung, die die erforderlichen Verweise zur Erstellung und Ausführung eines LINQ to SQL-Projekts enthält.

So erstellen Sie eine LINQ to SQL-Lösung

  1. Klicken Sie im Visual Studio-Menü Datei auf Neues Projekt.

  2. Klicken Sie im Bereich Projekttypen des Dialogfelds Neues Projekt auf Visual Basic.

  3. Klicken Sie im Bereich Vorlagen auf Konsolenanwendung.

  4. Geben Sie im Feld NameLinqDataManipulationApp ein.

  5. Klicken Sie auf OK.

Hinzufügen von LINQ-Verweisen und Richtlinien

Diese exemplarische Vorgehensweise verwendet Assemblys, die im Projekt u. U. nicht standardmäßig installiert sind. Wird System.Data.Linq in Ihrem Projekt nicht als Verweis aufgeführt (klicken Sie im Projektmappen-Explorer auf Alle Dateien anzeigen, und erweitern Sie den Knoten Verweise), fügen Sie diesen wie nachfolgend beschrieben hinzu.

So fügen Sie System.Data.Linq hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, und klicken Sie dann auf Verweis hinzufügen.

  2. Klicken Sie im Dialogfeld Verweis hinzufügen auf .NET, klicken Sie auf die System.Data.Linq-Assembly und dann auf OK.

    Dem Projekt wird die Assembly hinzugefügt.

  3. Fügen Sie im Code-Editor die folgenden Direktiven über Module1 hinzu:

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

Hinzufügen der Northwind-Codedatei zum Projekt.

Bei diesen Schritten wird davon ausgegangen, dass Sie das SQLMetal-Tool zum Erzeugen einer Codedatei aus der Beispieldatenbank Northwind verwendet haben. Weitere Informationen finden Sie im Abschnitt zu Voraussetzungen weiter oben in dieser exemplarischen Vorgehensweise.

So fügen Sie die Northwind-Codedatei dem Projekt hinzu

  1. Klicken Sie im Menü Projekt auf Vorhandenes Element hinzufügen.

  2. Navigieren Sie im Dialogfeld Vorhandenes Element hinzufügen zu c:\linqtest2\northwind.vb, und klicken Sie dann auf Hinzufügen.

    Die Datei northwind.vb wird dem Projekt hinzugefügt.

Einrichten der Datenverbindungen

Testen Sie zuerst die Verbindung zur Datenbank. Beachten Sie vor allem, dass der Name der Datenbank, Northwnd, kein i-Zeichen hat. Sollten im nächsten Schritt Fehler auftreten, prüfen Sie in der Datei northwind.vb die Schreibweise der partiellen Klasse Northwind.

So richten Sie die Datenbankverbindung ein und testen sie

  1. Geben Sie den folgenden Code in Sub Main ein, oder fügen Sie ihn ein:

    ' 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. Drücken Sie die Taste F5, um die Anwendung an diesem Punkt zu testen.

    Ein Konsolenfenster wird geöffnet.

    Schließen Sie die Anwendung, indem Sie im Konsolenfenster die EINGABETASTE drücken oder auf Debugging stoppen klicken (im Visual Studio-Menü Debug).

Erstellen einer neuen Entität

Eine neue Entität zu erstellen ist einfach. Sie können Objekte (z. B. Customer) erstellen, indem Sie das New-Schlüsselwort verwenden.

In diesem und den folgenden Abschnitten nehmen Sie Änderungen nur am lokalen Cache vor. Es werden keine Änderungen an die Datenbank gesendet, bis Sie zum Ende dieser exemplarischen Vorgehensweise SubmitChanges aufrufen.

So fügen Sie ein neues Kundenentitätsobjekt hinzu

  1. Erstellen Sie einen neuen Customer, indem Sie den folgenden Code vor Console.ReadLine in Sub Main hinzufügen:

    ' 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. Drücken Sie die Taste F5, um die Lösung zu debuggen.

    Im Konsolenfenster werden die folgenden Ergebnisse angezeigt:

    Customers matching CA before insert:

    Customer ID: CACTU

    Customer ID: RICAR

    Beachten Sie, dass die neue Zeile nicht in den Ergebnissen angezeigt wird. Die neuen Daten wurden noch nicht an die Datenbank übergeben.

  3. Drücken Sie die EINGABETASTE im Konsolenfenster, um das Debuggen zu stoppen.

Aktualisieren einer Entität

In den folgenden Schritten rufen Sie ein Customer-Objekt ab und ändern eine seiner Eigenschaften.

So ändern Sie den Namen eines Kunden

  • Fügen Sie den folgenden Code oberhalb von Console.ReadLine() ein:

    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"
    

Löschen einer Entität

Unter Verwendung des gleichen Kundenobjekts können Sie die erste Bestellung löschen.

Der folgende Code zeigt, wie Beziehungen zwischen Zeilen getrennt werden und wie eine Zeile aus der Datenbank Northwind gelöscht wird.

So löschen Sie eine Zeile

  • Fügen Sie den folgenden Code genau oberhalb von Console.ReadLine() hinzu.

    ' 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)
    

Übergeben von Änderungen an die Datenbank

Der letzte Schritt beim Erstellen, Aktualisieren und Löschen von Objekten besteht in der eigentlichen Übergabe der Änderungen an die Datenbank. Ohne diesen Schritt sind die Änderungen nur lokal und werden nicht in Abfrageergebnissen angezeigt.

So übergeben Sie die Änderungen an die Datenbank

  1. Fügen Sie den folgenden Code genau oberhalb von Console.ReadLine ein:

    db.SubmitChanges()
    
  2. Fügen Sie den folgenden Code (nach SubmitChanges) ein, um den Vorher-Nachher-Effekt der Änderungsübergabe zu zeigen:

    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. Drücken Sie die Taste F5, um die Lösung zu debuggen.

    Das Konsolenfenster wird wie folgt angezeigt:

    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. Drücken Sie die EINGABETASTE im Konsolenfenster, um das Debuggen zu stoppen.

Hinweis:

Wenn Sie den neuen Kunden durch Übergeben der Änderungen hinzugefügt haben, können Sie diese Lösung nicht einfach wieder ausführen, da Sie den gleichen Kunden nicht erneut hinzufügen können. Um die Lösung erneut auszuführen, ändern Sie den Wert der hinzuzufügenden Kunden-ID.

Siehe auch

Konzepte

Lernen mit exemplarischen Vorgehensweisen (LINQ to SQL)