(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Exemplarische Vorgehensweise: Bearbeiten von Daten (C#)

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.

HinweisHinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. 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 C#-Entwicklungseinstellungen geschrieben.

Für diese exemplarische Vorgehensweise wird Folgendes vorausgesetzt:

  • Diese exemplarische Vorgehensweise verwendet einen dedizierten Ordner ("c:\linqtest6") 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. Nachdem Sie die Datenbank heruntergeladen haben, kopieren Sie die Datei northwnd.mdf in den Ordner c:\linqtest6.

  • Eine von der Datenbank Northwind generierte C#-Codedatei.

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

    sqlmetal /code:"c:\linqtest6\northwind.cs" /language:csharp "C:\linqtest6\northwnd.mdf" /pluralize

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

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.

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. Zeigen Sie im Visual Studio-Menü Datei auf Neu, und klicken Sie dann auf Projekt.

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

  3. Klicken Sie im Bereich Vorlagen auf Konsolenanwendung.

  4. Geben Sie in das Feld Name "LinqDataManipulationApp" ein.

  5. Geben Sie im Feld Position an, wo die Projektdateien gespeichert werden sollen.

  6. Klicken Sie auf OK.

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, 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ügenauf .NET, klicken Sie auf die System.Data.Linq-Assembly und dann auf OK.

    Dem Projekt wird die Assembly hinzugefügt.

  3. Fügen Sie die folgenden Direktiven am oberen Rand von Program.cs hinzu:

    
    using System.Data.Linq;
    using System.Data.Linq.Mapping;
    
    
    

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:\linqtest6\northwind.cs, und klicken Sie dann auf Hinzufügen.

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

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

So richten Sie die Datenbankverbindung ein und testen diese

  1. Geben Sie den folgenden Code in die Main-Methode in der Programmklasse ein, oder fügen Sie ihn ein:

    
    // Use the following connection string.
    Northwnd db = new Northwnd(@"c:\linqtest6\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).

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 der Main-Methode hinzufügen:

    
    // Create the new Customer object.
    Customer newCust = new Customer();
    newCust.CompanyName = "AdventureWorks Cafe";
    newCust.CustomerID = "ADVCA";
    
    // Add the customer to the Customers table.
    db.Customers.InsertOnSubmit(newCust);
    
    Console.WriteLine("\nCustomers matching CA before insert");
    
    foreach (var c in db.Customers.Where(cust => cust.CustomerID.Contains("CA")))
    {
        Console.WriteLine("{0}, {1}, {2}",
            c.CustomerID, c.CompanyName, c.Orders.Count);
    }
    
    
    
  2. Drücken Sie die Taste F5, um die Lösung zu Debuggen.

  3. Drücken Sie die EINGABETASTE im Konsolenfenster, um das Debugging zu beenden und die exemplarische Vorgehensweise fortzusetzen.

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:

    
    // Query for specific customer.
    // First() returns one object rather than a collection.
    var existingCust =
        (from c in db.Customers
         where c.CustomerID == "ALFKI"
         select c)
        .First();
    
    // Change the contact name of the customer.
    existingCust.ContactName = "New Contact";
    
    
    

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. Fügen Sie den folgenden Code vor Console.ReadLine hinzu, um zu sehen, wie Objekte gelöscht werden können:

So löschen Sie eine Zeile

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

    
    // Access the first element in the Orders collection.
    Order ord0 = existingCust.Orders[0];
    
    // Access the first element in the OrderDetails collection.
    OrderDetail detail0 = ord0.OrderDetails[0];
    
    // Display the order to be deleted.
    Console.WriteLine
        ("The Order Detail to be deleted is: OrderID = {0}, ProductID = {1}",
        detail0.OrderID, detail0.ProductID);
    
    // Mark the Order Detail row for deletion from the database.
    db.OrderDetails.DeleteOnSubmit(detail0);
    
    
    

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("\nCustomers matching CA after update");
    foreach (var c in db.Customers.Where(cust =>
        cust.CustomerID.Contains("CA")))
    {
        Console.WriteLine("{0}, {1}, {2}",
            c.CustomerID, c.CompanyName, c.Orders.Count);
    }
    
    
    
  3. Drücken Sie die Taste F5, um die Lösung zu Debuggen.

  4. Drücken Sie die EINGABETASTE im Konsolenfenster, um die Anwendung zu schließen.

Hinweis Hinweis

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

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft