Freigeben über


Exemplarische Vorgehensweise: Ändern zwischengespeicherter Daten in einer Arbeitsmappe auf einem Server

Diese exemplarische Vorgehensweise veranschaulicht, wie Sie mit der ServerDocument-Klasse ein Dataset ändern können, das in einer Microsoft Office Excel-Arbeitsmappe zwischengespeichert ist, ohne Excel zu starten. Diese exemplarische Vorgehensweise stellt Schritt-für-Schritt-Anweisungen für das Verwenden der Codebeispiele bereit, die in Gewusst wie: Ändern zwischengespeicherter Daten in einer Arbeitsmappe auf einem Server bereitgestellt werden.

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokumentebene für Excel 2007 und Excel 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:

  • Definieren eines DataSets, das Daten aus der AdventureWorksLT-Datenbank enthält

  • Erstellen von Datasetinstanzen in einem Excel-Arbeitsmappenprojekt und einem Konsolenanwendungsprojekt

  • Erstellen eines ListObject, das an das Dataset in der Arbeitsmappe gebunden ist, und Auffüllen des ListObject mit Daten, wenn die Arbeitsmappe geöffnet wird

  • Hinzufügen des Datasets in der Arbeitsmappe zum Datencache

  • Ändern einer Datenspalte im zwischengespeicherten Dataset durch Ausführen von Code in der Konsolenanwendung ohne Starten von Excel

Bei dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass Sie den Code auf Ihrem Entwicklungscomputer ausführen. Sie können den hier demonstrierten Code jedoch auch auf einem Server verwenden, auf dem Excel nicht installiert ist.

Tipp

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. Die von Ihnen verwendete Visual Studio-Edition und die Einstellungen legen diese Elemente fest. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

-

Eine Version von Visual Studio 2010, die die Microsoft Office-Entwicklungstools einschließt. Weitere Informationen finden Sie unter [Konfigurieren eines Computers zum Entwickeln von Office-Lösungen](bb398242\(v=vs.100\).md).

Erstellen eines Klassenbibliotheksprojekts zur Definition eines Datasets

Um dasselbe Dataset in einem Excel-Arbeitsmappenprojekt und einem Konsolenanwendungsprojekt verwenden zu können, müssen Sie es in einer separaten Assembly definieren, auf die beide Projekte verweisen. Definieren Sie für diese exemplarische Vorgehensweise das Dataset in einem Klassenbibliotheksprojekt.

So erstellen Sie ein Klassenbibliotheks-Projekt

  1. Starten Sie Visual Studio.

  2. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

  3. Erweitern Sie im Vorlagenbereich Visual C# oder Visual Basic, und klicken Sie dann auf Windows.

  4. Wählen Sie in der Liste der Projektvorlagen Klassenbibliothek aus.

  5. Geben Sie im Feld Name Folgendes ein: AdventureWorksDataSet.

  6. Klicken Sie auf Durchsuchen, navigieren Sie zum Ordner %UserProfile%\Eigene Dateien (Windows XP und ältere Versionen) bzw. %UserProfile%\Dokumente (Windows Vista), und klicken Sie dann auf Ordner auswählen.

  7. Im Dialogfeld Neues Projekt muss das Kontrollkästchen Projektmappenverzeichnis erstellen deaktiviert sein.

  8. Klicken Sie auf OK.

    Visual Studio fügt das Projekt AdventureWorksDataSet dem Projektmappen-Explorer hinzu und öffnet die Codedatei Class1.cs oder Class1.vb.

  9. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Class1.cs bzw. auf Class1.vb, und klicken Sie dann auf Löschen. Diese Datei wird für diese exemplarische Vorgehensweise nicht benötigt.

Definieren eines Datasets im Klassenbibliotheksprojekt

Definieren Sie ein typisiertes DataSet, das Daten aus der AdventureWorksLT-Datenbank für SQL Server 2005 enthält. Zu einem späteren Zeitpunkt in dieser exemplarischen Vorgehensweise verweisen Sie von einem Excel-Arbeitsmappenprojekt und einem Konsolenanwendungsprojekt auf dieses DataSet.

Das Dataset ist ein typisiertes Dataset, das die Daten in der Product-Tabelle der AdventureWorksLT-Datenbank darstellt. Weitere Informationen zu typisierten Datasets finden Sie unter Arbeiten mit Datasets in Visual Studio.

So definieren Sie ein typisiertes Dataset im Klassenbibliotheksprojekt

  1. Klicken Sie im Projektmappen-Explorer auf das Projekt AdventureWorksDataSet.

  2. Klicken Sie im Menü Daten auf Neue Datenquelle hinzufügen.

    Der Assistent zum Konfigurieren von Datenquellen wird geöffnet.

  3. Klicken Sie auf Datenbank und anschließend auf Weiter.

  4. Wenn eine Verbindung mit der AdventureWorksLT-Datenbank vorhanden ist, wählen Sie diese Verbindung aus, und klicken Sie auf Weiter.

    Klicken Sie andernfalls auf Neue Verbindung, und erstellen Sie die neue Verbindung im Dialogfeld Verbindung hinzufügen. Weitere Informationen hierzu finden Sie unter Gewusst wie: Herstellen einer Verbindung zu Daten in einer Datenbank.

  5. Klicken Sie auf der Seite Verbindungszeichenfolge in der Anwendungskonfigurationsdatei speichern auf Weiter.

  6. Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen, und wählen Sie Product (SalesLT).

  7. Klicken Sie auf Fertig stellen.

    Die Datei AdventureWorksLTDataSet.xsd wird dem AdventureWorksDataSet-Projekt hinzugefügt. Diese Datei definiert die folgenden Elemente:

    • Ein typisiertes Dataset mit dem Namen AdventureWorksLTDataSet. Dieses Dataset stellt den Inhalt der Product-Tabelle in der AdventureWorksLT-Datenbank dar.

    • Ein TableAdapter mit dem Namen ProductTableAdapter. Dieser TableAdapter kann zum Lesen von Daten aus und zum Schreiben von Daten in AdventureWorksLTDataSet verwendet werden. Weitere Informationen hierzu finden Sie unter Übersicht über TableAdapters.

    Zu einem späteren Zeitpunkt in dieser exemplarischen Vorgehensweise verwenden Sie beide Objekte.

  8. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf AdventureWorksDataSet, und klicken Sie dann auf Erstellen.

    Überprüfen Sie, ob sich das Projekt fehlerfrei erstellen lässt.

Erstellen eines Excel-Arbeitsmappenprojekts

Erstellen Sie ein Excel-Arbeitsmappenprojekt für die Datenschnittstelle. Zu einem späteren Zeitpunkt der exemplarischen Vorgehensweise erstellen Sie ein ListObject zur Anzeige der Daten und fügen dem Datencache der Arbeitsmappe eine Instanz des Datasets hinzu.

So erstellen Sie das Excel-Arbeitsmappenprojekt

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf AdventureWorksDataSet, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neues Projekt.

  2. Erweitern Sie im Vorlagenbereich Visual C# oder Visual Basic, und erweitern Sie dann Office.

  3. Wählen Sie unter dem erweiterten Knoten Office den Knoten 2007 oder 2010 aus.

  4. Wählen Sie in der Liste der Projektvorlagen das Projekt "Excel-Arbeitsmappe" aus.

  5. Geben Sie im Feld Name Folgendes ein: AdventureWorksReport. Ändern Sie den Speicherort nicht.

  6. Klicken Sie auf OK.

    Der Projekt-Assistent aus Visual Studio Tools for Office wird geöffnet.

  7. Stellen Sie sicher, dass die Option Neues Dokument erstellen ausgewählt ist, und klicken Sie auf OK.

    Visual Studio öffnet die Arbeitsmappe AdventureWorksReport im Designer und fügt dem Projektmappen-Explorer das Projekt AdventureWorksReport hinzu.

Hinzufügen des Datasets zu Datenquellen im Excel-Arbeitsmappenprojekt

Bevor Sie das Dataset in der Excel-Arbeitsmappe anzeigen können, müssen Sie es zunächst Datenquellen im Excel-Arbeitsmappenprojekt hinzufügen.

So fügen Sie das Dataset den Datenquellen im Excel-Arbeitsmappenprojekt hinzu

  1. Doppelklicken Sie im Projektmappen-Explorer unter dem Projekt AdventureWorksReport auf Sheet1.cs bzw. auf Sheet1.vb.

    Die Arbeitsmappe wird im Designer geöffnet.

  2. Klicken Sie im Menü Daten auf Neue Datenquelle hinzufügen.

    Der Assistent zum Konfigurieren von Datenquellen wird geöffnet.

  3. Klicken Sie auf Objekt und anschließend auf Weiter.

  4. Klicken Sie auf der Seite Objekt auswählen, an das Bindung hergestellt werden soll auf Verweis hinzufügen.

  5. Klicken Sie auf der Registerkarte Projekte auf AdventureWorksDataSet, und klicken Sie dann auf OK.

  6. Klicken Sie unter dem AdventureWorksDataSet-Namespace der AdventureWorksDataSet-Assembly auf AdventureWorksLTDataSet und dann auf Fertig stellen.

    Das Fenster Datenquellen wird geöffnet, und AdventureWorksLTDataSet wird der Liste der Datenquellen hinzugefügt.

Erstellen eines an eine Instanz des Datasets gebundenen ListObject-Steuerelements

Um das Dataset in der Arbeitsmappe anzuzeigen, erstellen Sie ein ListObject, das an eine Instanz des Datasets gebunden ist. Weitere Informationen zum Binden von Steuerelementen an Daten finden Sie unter Binden von Daten an Steuerelemente in Office-Projektmappen.

So erstellen Sie ein ListObject, das an eine Instanz des Datasets gebunden ist

  1. Erweitern Sie im Fenster Datenquellen unter AdventureWorksDataSet den Knoten AdventureWorksLTDataSet.

  2. Wählen Sie den Knoten Product, klicken Sie auf den Dropdownpfeil, und wählen Sie dann ListObject aus der Dropdownliste.

    Wenn der Dropdownpfeil nicht angezeigt wird, überprüfen Sie, ob die Arbeitsmappe im Designer geöffnet ist.

  3. Ziehen Sie die Tabelle Product zur Zelle A1.

    Ein ListObject-Steuerelement mit dem Namen productListObject wird im Arbeitsblatt beginnend mit Zelle A1 erstellt. Gleichzeitig werden dem Projekt ein Datasetobjekt mit dem Namen adventureWorksLTDataSet und eine BindingSource mit dem Namen productBindingSource hinzugefügt. Das ListObject ist an die BindingSource gebunden, die wiederum an das Datasetobjekt gebunden ist.

Hinzufügen des Datasets zum Datencache

Um Code außerhalb des Excel-Arbeitsmappenprojekts für den Zugriff auf das Dataset in der Arbeitsmappe zu aktivieren, müssen Sie das Dataset zunächst dem Datencache hinzufügen. Weitere Informationen über den Datencache finden Sie unter Zwischengespeicherte Daten in Anpassungen auf Dokumentebene und unter Zwischenspeichern von Daten.

So fügen Sie das Dataset dem Datencache hinzu

  1. Klicken Sie im Designer auf adventureWorksLTDataSet.

  2. Legen Sie im Eigenschaftenfenster die Modifiers-Eigenschaft auf Public fest.

  3. Legen Sie die CacheInDocument-Eigenschaft auf True fest.

Initialisieren des Datasets in der Arbeitsmappe

Bevor Sie die Daten mit der Konsolenanwendung aus dem zwischengespeicherten Dataset abrufen können, müssen Sie zunächst das zwischengespeicherte Dataset mit Daten auffüllen.

So initialisieren Sie das Dataset in der Arbeitsmappe

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei Sheet1.vb bzw. die Datei Sheet1.cs, und klicken Sie anschließend auf Code anzeigen.

  2. Ersetzen Sie den Sheet1_Startup-Ereignishandler durch folgenden Code. Dieser Code verwendet eine Instanz der ProductTableAdapter-Klasse, die im AdventureWorksDataSet-Projekt definiert ist, um das zwischengespeicherte Dataset mit Daten aufzufüllen, wenn es momentan leer ist.

    Private ProductTableAdapter As New  _
        AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter()
    
    Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
        If Me.NeedsFill("AdventureWorksLTDataSet") Then
            Me.ProductTableAdapter.Fill(Me.AdventureWorksLTDataSet.Product)
        End If
    End Sub
    
    private AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter productTableAdapter =
        new AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter();
    
    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        if (this.NeedsFill("adventureWorksLTDataSet"))
        {
            this.productTableAdapter.Fill(this.adventureWorksLTDataSet.Product);
        }
    }
    

Checkpoint

Erstellen Sie das Excel-Arbeitsmappenprojekt, und führen Sie es aus, um sicherzustellen, dass es fehlerfrei kompiliert und ausgeführt wird. Bei diesem Vorgang wird auch das zwischengespeicherte Dataset mit Daten aufgefüllt, und die Daten werden in der Arbeitsmappe gespeichert.

So erstellen Sie das Projekt und führen es aus

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt AdventureWorksReport, wählen Sie Debuggen, und klicken Sie dann auf Neue Instanz starten.

    Das Projekt wird erstellt, und die Arbeitsmappe wird in Excel geöffnet. Überprüfen Sie Folgendes:

    • Das ListObject wird mit Daten aufgefüllt.

    • Der Wert in der Spalte ListPrice in der ersten Zeile des ListObject ist 1431.5. Später in dieser exemplarischen Vorgehensweise verwenden Sie eine Konsolenanwendung, um die Werte in der Spalte ListPrice zu ändern.

  2. Speichern Sie die Arbeitsmappe. Ändern Sie den Dateinamen oder den Speicherort der Arbeitsmappe nicht.

  3. Beenden Sie Excel.

Erstellen eines Konsolenanwendungsprojekts

Erstellen Sie ein Konsolenanwendungsprojekt, das verwendet werden soll, um Daten im zwischengespeicherten Dataset in der Arbeitsmappe zu ändern.

So erstellen Sie das Konsolenanwendungsprojekt

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf AdventureWorksDataSet, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neues Projekt.

  2. Erweitern Sie im Bereich Projekttypen den Knoten Visual C# oder Visual Basic, und klicken Sie dann auf Windows.

  3. Wählen Sie im Bereich Vorlagen die Option Konsolenanwendung aus.

  4. Geben Sie im Feld Name die Zeichenfolge DataWriter ein. Ändern Sie den Speicherort nicht.

  5. Klicken Sie auf OK.

    Visual Studio fügt das Projekt DataWriter dem Projektmappen-Explorer hinzu und öffnet die Codedatei Program.cs bzw. Module1.vb.

Ändern von Daten mit der Konsolenanwendung im zwischengespeicherten Dataset

Verwenden Sie die ServerDocument-Klasse in der Konsolenanwendung, um die Daten in ein lokales AdventureWorksLTDataSet-Objekt einzulesen, diese Daten zu speichern und sie anschließend zurück in das zwischengespeicherte Dataset zu speichern.

So ändern Sie Daten im zwischengespeicherten Dataset

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

  2. Wählen Sie auf der Registerkarte .NET Microsoft.VisualStudio.Tools.Applications.ServerDocument (wenn das Projekt DataWriter auf .NET Framework 4 abzielt) oder Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0 aus (wenn das Projekt DataWriter auf .NET Framework 3.5 abzielt).

  3. Klicken Sie auf OK.

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt DataWriter, und klicken Sie dann auf Verweis hinzufügen.

  5. Wählen Sie auf der Registerkarte Projekte die Option AdventureWorksDataSet, und klicken Sie auf OK.

  6. Öffnen Sie die Datei Program.cs oder die Datei Module1.vb im Code-Editor.

  7. Fügen Sie die folgende using-Anweisung (für C#) bzw. die Imports-Anweisung (für Visual Basic) am Anfang der Codedatei hinzu.

    Imports Microsoft.VisualStudio.Tools.Applications
    
    using Microsoft.VisualStudio.Tools.Applications;
    
  8. Fügen Sie der Main-Methode folgenden Code hinzu: Mit diesem Code werden die folgenden Objekte deklariert:

    • Eine Instanz des AdventureWorksLTDataSet-Typs, der im AdventureWorksDataSet-Projekt definiert ist.

    • Der Pfad zur AdventureWorksReport-Arbeitsmappe im build-Ordner des AdventureWorksReport-Projekts.

    • Ein ServerDocument-Objekt für den Zugriff auf den Datencache der Arbeitsmappe.

      Tipp

      Im folgenden Code wird davon ausgegangen, dass Sie eine Arbeitsmappe mit der Erweiterung .xlsx verwenden. Wenn die Arbeitsmappe im Projekt eine andere Dateinamenerweiterung hat, ändern Sie den Pfad wie erforderlich.

    Dim productDataSet As New AdventureWorksDataSet.AdventureWorksLTDataSet()
    Dim workbookPath As String = System.Environment.GetFolderPath( _
        Environment.SpecialFolder.MyDocuments) & _
        "\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx"
    Dim serverDocument1 As ServerDocument = Nothing
    
    AdventureWorksDataSet.AdventureWorksLTDataSet productDataSet =
        new AdventureWorksDataSet.AdventureWorksLTDataSet();
    string workbookPath = System.Environment.GetFolderPath(
        Environment.SpecialFolder.MyDocuments) +
        @"\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx";
    ServerDocument serverDocument1 = null;
    
  9. Fügen Sie der Main-Methode den folgenden Code nach dem im vorherigen Schritt hinzugefügten Code hinzu. Mit diesem Code werden die folgenden Aufgaben ausgeführt:

    • Er verwendet die CachedData-Eigenschaft der ServerDocument-Klasse, um auf das zwischengespeicherte Dataset in der Arbeitsmappe zuzugreifen.

    • Er liest die Daten aus dem zwischengespeicherten Dataset in das lokale Dataset ein.

    • Er ändert den ListPrice-Wert jedes Produkts in der Produkttabelle des Datasets.

    • Er speichert die Änderungen am zwischengespeicherten Dataset in der Arbeitsmappe.

    Try
        serverDocument1 = New ServerDocument(workbookPath)
        Dim dataHostItem1 As CachedDataHostItem = _
            serverDocument1.CachedData.HostItems("AdventureWorksReport.Sheet1")
        Dim dataItem1 As CachedDataItem = dataHostItem1.CachedData("AdventureWorksLTDataSet")
    
        If dataItem1 IsNot Nothing Then
            Console.WriteLine("Before reading data from the cache dataset, the local dataset has " & _
                "{0} rows.", productDataSet.Product.Rows.Count.ToString())
    
            ' Read the cached data from the worksheet dataset into the local dataset.
            Dim schemaReader As New System.IO.StringReader(dataItem1.Schema)
            Dim xmlReader As New System.IO.StringReader(dataItem1.Xml)
            productDataSet.ReadXmlSchema(schemaReader)
            productDataSet.ReadXml(xmlReader)
    
            Console.WriteLine("After reading data from the cache dataset, the local dataset has " & _
                "{0} rows.", productDataSet.Product.Rows.Count.ToString())
    
            ' Modify the prices of each product in the local dataset.
            Dim row As AdventureWorksDataSet.AdventureWorksLTDataSet.ProductRow
            For Each row In productDataSet.Product.Rows
                If row.ProductCategoryID < 20 Then
                    row.ListPrice = row.ListPrice + row.ListPrice * 0.1
                Else
                    row.ListPrice = row.ListPrice - row.ListPrice * 0.1
                End If
            Next row
    
            ' Write the modified local dataset to the worksheet dataset using the DiffGram format.
            Dim stringIn As New System.Text.StringBuilder()
            Dim stringOut As New System.IO.StringWriter(stringIn)
            productDataSet.WriteXml(stringOut, System.Data.XmlWriteMode.DiffGram)
            dataItem1.Xml = stringIn.ToString()
    
            serverDocument1.Save()
            Console.WriteLine("The product prices have been modified.")
        Else
            Console.WriteLine("The data object is not found in the data cache.")
        End If
    Catch ex As System.IO.FileNotFoundException
        Console.WriteLine("The specified workbook does not exist.")
    Catch ex As System.Xml.XmlException
        Console.WriteLine("The data object has invalid XML information.")
    Finally
        If Not (serverDocument1 Is Nothing) Then
            serverDocument1.Close()
        End If
        Console.WriteLine(vbLf & vbLf & "Press Enter to close the application.")
        Console.ReadLine()
    End Try
    
    try
    {
        serverDocument1 = new ServerDocument(workbookPath);
        CachedDataHostItem dataHostItem1 =
            serverDocument1.CachedData.HostItems["AdventureWorksReport.Sheet1"];
        CachedDataItem dataItem1 = dataHostItem1.CachedData["adventureWorksLTDataSet"];
    
        if (dataItem1 != null)
        {
            Console.WriteLine("Before reading data from the cache dataset, the local dataset has " +
                "{0} rows.", productDataSet.Product.Rows.Count.ToString());
    
            // Read the cached data from the worksheet dataset into the local dataset.
            System.IO.StringReader schemaReader = new System.IO.StringReader(dataItem1.Schema);
            System.IO.StringReader xmlReader = new System.IO.StringReader(dataItem1.Xml);
            productDataSet.ReadXmlSchema(schemaReader);
            productDataSet.ReadXml(xmlReader);
    
            Console.WriteLine("After reading data from the cache dataset, the local dataset has " +
                "{0} rows.", productDataSet.Product.Rows.Count.ToString());
    
            // Modify the prices of each product in the local dataset.
            foreach (AdventureWorksDataSet.AdventureWorksLTDataSet.ProductRow row in 
                     productDataSet.Product.Rows)
            {
                if (row.ProductCategoryID < 20)
                {
                    row.ListPrice = row.ListPrice + (row.ListPrice * (Decimal).10);
                }
                else
                {
                    row.ListPrice = row.ListPrice - (row.ListPrice * (Decimal).10);
                }
            }
    
            // Write the modified local dataset to the worksheet dataset using the DiffGram format.
            System.Text.StringBuilder stringIn = new System.Text.StringBuilder();
            System.IO.StringWriter stringOut = new System.IO.StringWriter(stringIn);
            productDataSet.WriteXml(stringOut, System.Data.XmlWriteMode.DiffGram);
            dataItem1.Xml = stringIn.ToString();
    
            serverDocument1.Save();
            Console.WriteLine("The product prices have been modified.");
        }
        else
        {
            Console.WriteLine("The data object is not found in the data cache.");
        }
    }
    catch (System.IO.FileNotFoundException)
    {
        Console.WriteLine("The specified workbook does not exist.");
    }
    catch (System.Xml.XmlException)
    {
        Console.WriteLine("The data object has invalid XML information.");
    }
    finally
    {
        if (serverDocument1 != null)
        {
            serverDocument1.Close();
        }
    
        Console.WriteLine("\n\nPress Enter to close the application.");
        Console.ReadLine();
    }
    
  10. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt DataWriter, zeigen Sie auf Debuggen, und klicken Sie dann auf Neue Instanz starten.

    Die Konsolenanwendung zeigt Meldungen an, während sie das zwischengespeicherte Dataset in das lokale Dataset einliest, die Produktpreise im lokalen Dataset ändert und die neuen Werte in das zwischengespeicherte Dataset speichert. Drücken Sie die Eingabetaste, um die Anwendung zu schließen.

Testen der Arbeitsmappe

Wenn Sie die Arbeitsmappe öffnen, zeigt das ListObject nun die Änderungen an, die Sie an der ListPrice-Spalte im zwischengespeicherten Dataset vorgenommen haben.

So testen Sie die Arbeitsmappe

  1. Schließen Sie die AdventureWorksReport-Arbeitsmappe im Visual Studio-Designer, wenn sie immer noch geöffnet ist.

  2. Öffnen Sie die AdventureWorksReport-Arbeitsmappe im build-Ordner des AdventureWorksReport-Projekts. Standardmäßig befindet sich der Buildordner an einem der folgenden Speicherorte:

    • %UserProfile%\Eigene Dateien\AdventureWorksReport\bin\Debug (Windows XP und früher)

    • %UserProfile%\Dokumente\AdventureWorksReport\bin\Debug (Windows Vista)

  3. Vergewissern Sie sich, dass der Wert in der Spalte ListPrice in der ersten Zeile des ListObject nun 1574.65 ist.

  4. Schließen Sie die Arbeitsmappe.

Nächste Schritte

Mehr über das Arbeiten mit zwischengespeicherten Daten erfahren Sie in den folgenden Themen:

Siehe auch

Aufgaben

Gewusst wie: Einfügen von Daten in eine Arbeitsmappe auf einem Server

Gewusst wie: Abrufen von zwischengespeicherten Daten aus einer Arbeitsmappe auf einem Server

Exemplarische Vorgehensweise: Einfügen von Daten in eine Arbeitsmappe auf einem Server

Gewusst wie: Einfügen von Daten in Dokumente, ohne auf den Datenträger zu schreiben

Konzepte

Herstellen einer Verbindung mit Daten in Windows Forms-Anwendungen