Exemplarische Vorgehensweise: Erstellen einer gelegentlich verbundenen Anwendung mit dem Assistenten zum Konfigurieren von Datenquellen

Aktualisiert: Juli 2008

Ab Visual Studio 2008 SP1 können Sie zusätzlich zum Dialogfeld Datensynchronisierung konfigurieren auch den Assistenten zum Konfigurieren von Datenquellen zur Konfiguration der Synchronisierung verwenden. Diese exemplarische Vorgehensweise enthält Schritt-für-Schritt-Anweisungen zum Entwickeln einer gelegentlich verbundenen Anwendung, indem Sie beim Ausführen von Assistent zum Konfigurieren von Datenquellen Synchronization Services integrieren.

Gelegentlich verbundene Anwendungen sind Anwendungen, die möglicherweise nicht immer Zugriff auf Remotedaten haben. Da sie nicht immer über diesen Zugriff verfügen, nutzen sie Daten aus einer lokalen, auf dem Client befindlichen Datenbank und synchronisieren die Daten zwischen der Remotedatenbank und der lokalen Datenbank. Die Synchronisierung von Daten zwischen lokalen und Remotedatenbanken wird von Microsoft Synchronization Services für ADO.NET (der Microsoft.Synchronization.Data-Namespace) erleichtert. Sie erstellen diese Synchronisierung, indem Sie im Dialogfeld Neues Element hinzufügen einen lokalen Datenbankcache zu einer Anwendung hinzufügen oder indem Sie den Assistenten zum Konfigurieren von Datenquellen ausführen. In dieser exemplarischen Vorgehensweise verwenden Sie die zuletzt genannte Möglichkeit.

Im Verlauf dieser exemplarischen Vorgehensweise führen Sie folgende Aufgaben aus:

  • Erstellen Sie eine neue Windows Forms-Anwendung.

  • Führen Sie den Assistenten zum Konfigurieren von Datenquellen aus, um ein typisiertes Dataset mit Zwischenspeicherung der lokalen Datenbank zu erstellen und zu konfigurieren.

  • Erstellen Sie ein Windows Form, um die Daten anzuzeigen und die Synchronisierung zu bestätigen.

  • Hinzufügen von Code, um die Synchronisierung zwischen Datenbanken zu starten

  • Hinzufügen eines Meldungsfelds, um Informationen über die Anzahl der synchronisierten Datensätze anzuzeigen

Vorbereitungsmaßnahmen

Um diese exemplarische Vorgehensweise durchzuführen, benötigen Sie die folgenden Komponenten:

  • Zugriff auf die SQL Server-Version der Beispieldatenbank Northwind. Weitere Informationen hierzu finden Sie unter Gewusst wie: Installieren von Beispieldatenbanken.

  • SQL Server Compact 3.5, installiert auf dem Computer, auf dem Visual Studio ausgeführt wird.

Erstellen der Windows Forms-Anwendung

Da die Daten in einem Windows Form angezeigt werden, um zu überprüfen, ob die Synchronisierung erfolgreich war, besteht der erste Schritt in dieser exemplarischen Vorgehensweise in der Erstellung einer neuen Windows Forms-Anwendung.

Hinweis:

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung 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.

So erstellen Sie eine neue Windows Forms-Anwendung

  1. Erstellen Sie über das Menü Datei ein neues Projekt.

  2. Geben Sie als Namen für das Projekt OCSWalkthrough2 ein.

  3. Klicken Sie auf die Vorlage Windows Forms-Anwendung und anschließend auf OK. Weitere Informationen hierzu finden Sie unter Erstellen von Windows-basierten Anwendungen.

    Das OCSWalkthrough2-Projekt wird erstellt und dem Projektmappen-Explorer hinzugefügt.

Erstellen einer Datenquelle mit einem Cache für lokale Datenbanken

Diese exemplarische Vorgehensweise veranschaulicht, wie Sie Synchronization Services mithilfe des Assistenten zum Konfigurieren von Datenquellen in eine Anwendung integrieren. Im nächsten Schritt rufen Sie daher den Assistenten auf. In diesem Schritt werden der Assistent gestartet und ein Dataset erstellt, das auf der Tabelle Customers in der Beispieldatenbank Northwind basiert. Beim Angeben der Datenbanktabelle, die dem Dataset hinzugefügt werden soll, wählen Sie die Option zum Aktivieren der Zwischenspeicherung lokaler Daten aus.

So erstellen Sie eine Datenquelle mit einem Cache für lokale Datenbanken

  1. Klicken Sie im Menü Daten auf Datenquellen anzeigen.

  2. Wählen Sie im Fenster Datenquellen die Option Neue Datenquelle hinzufügen aus, um den Assistenten zum Konfigurieren von Datenquellen zu starten.

  3. Übernehmen Sie auf der Seite Datenquellentyp auswählen den Standardwert für Datenbank, und klicken Sie auf Weiter.

  4. Führen Sie auf der Seite Wählen Sie Ihre Datenverbindung aus einen der folgenden Schritte aus:

    • Wenn in der Dropdownliste eine Datenverbindung mit der SQL Server-Version der Beispieldatenbank Northwind verfügbar ist, wählen Sie diese aus.

      - oder -

    • Klicken Sie auf Neue Verbindung, um das Dialogfeld Datenquelle auswählen oder Verbindung hinzufügen/ändernzu öffnen und eine neue Verbindung mit der SQL Server-Version der Datenbank Northwind zu erstellen. Weitere Informationen hierzu finden Sie unter Dialogfeld "Verbindung hinzufügen/ändern" (Allgemein).

  5. Sollte für die Datenbank ein Kennwort erforderlich sein, wählen Sie die Option für die Einbeziehung vertraulicher Daten aus, und klicken Sie anschließend auf Weiter.

  6. Klicken Sie auf der Seite Verbindungszeichenfolge in der Programmkonfigurationsdatei speichern auf Weiter.

  7. Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen.

  8. Wählen Sie die Tabelle Customers aus.

  9. Wählen Sie Zwischenspeichern der lokalen Datenbank aktivieren aus.

  10. Klicken Sie auf der Seite Datenbankobjekte auswählen auf Weiter.

  11. Wählen Sie auf der Seite Tabellen zum Zwischenspeichern auswählen die Tabelle Customers aus.

    Hinweis:

    Übernehmen Sie für Synchronisierungsmodus den Standardwert Inkrementell Im inkrementellen Modus werden nur die Änderungen synchronisiert, die seit der letzten Synchronisierung auf dem Server vorgenommen wurden. Im Snapshotmodus wird die gesamte, lokal zwischengespeicherte Tabelle durch die aktuelle Tabelle auf dem Server ersetzt. Es wird zunächst die ganze Tabelle in den Cache der lokalen Datenbank geladen, ganz gleich welche Auswahl Sie hier treffen. Ausgangspunkt ist somit immer ein vollständiger Satz aktueller Daten.

  12. Klicken Sie auf Fertig stellen.

  13. Wenn der Synchronisierungsmodus für eine der lokal zwischengespeicherten Tabellen auf Neue und inkrementelle Änderungen nach der ersten Synchronisierung festgelegt ist, sind Aktualisierungen für die SQL Server-Datenbank erforderlich, und das Dialogfeld SQL-Skripts generieren wird geöffnet. Standardmäßig sind beide Optionen im Dialogfeld ausgewählt:

    • Server für inkrementelle Änderungen aktualisieren. Wählen Sie diese Option zur automatischen Aktualisierung des Servers aus, damit die inkrementelle Synchronisierung sofort nach dem Schließen dieses Dialogfelds aktiviert wird.

    • SQL-Skripts für die spätere Verwendung im Projekt speichern. Wählen Sie diese Option aus, um die erstellten SQL-Skripts zum Projekt hinzuzufügen, sodass sie später für die SQL Server-Datenbank ausgeführt werden können. Außerdem werden Undo-Skripts generiert und dem Projekt hinzugefügt.

  14. Klicken Sie auf OK.

Aktivieren der Synchronisierung in der Anwendung

Nachdem Sie den vorherigen Schritt, die Ausführung des Assistenten zum Konfigurieren von Datenquellen, beendet haben, ist die Datensynchronisierung konfiguriert. Die Anwendung enthält nun folgende Komponenten:

  • Eine lokale Version der Datenbank Northwind (Northwind.sdf).

  • Eine Datei mit Datensynchronisierungseinstellungen (NorthwindCache.sync).

  • Ein vom Assistenten zum Konfigurieren von Datenquellen generiertes typisiertes Dataset (NorthwindDataSet.xsd). Dieses enthält eine Tabelle Customers, deren Daten aus der lokalen Datenbank entnommen wurden.

    Es wird eine erste Synchronisierung ausgeführt, und die Tabelle Customers im Cache der lokalen Datenbank wird mit der Serverdatenbank synchronisiert. Die Tabelle Customers in der lokalen SQL Server Compact 3.5-Datenbank (Northwind.sdf) wird hierbei mit den Daten gefüllt, die aktuell in der Tabelle Customers der auf dem Server gespeicherten Datenbank enthalten sind.

  • Der Ordner SQLScripts mit den Skripts, die zum Erstellen der Nachverfolgungsspalten, der Tabelle mit gelöschten Elementen sowie der zum Nachverfolgen von Änderungen auf dem Server erforderlichen Trigger verwendet werden.

  • Der Ordner SQLUndoScripts mit den Skripts zum Entfernen der Nachverfolgungsspalten, der Tabelle mit gelöschten Elementen sowie der erforderlichen, dem Server hinzugefügten Trigger.

    Hinweis:

    SQL-Skripts werden nur erstellt, wenn Änderungen auf dem Server vorgenommen werden müssen. Wenn der Server bereits über eine Tabelle gelöschter Elemente und Nachverfolgungsspalten verfügt, werden keine Skripts erstellt.

  • Verweise auf die folgenden Microsoft Synchronization Services für ADO.NET-DLLs:

    • Microsoft.Synchronization.Data

    • Microsoft.Synchronization.Data.Server

    • Microsoft.Synchronization.Data.SqlServerCe

Hinzufügen von Synchronisierungsfunktionen zur Anwendung

Nach dem Konfigurieren der Datensynchronisierung müssen Sie der Anwendung noch Synchronisierungsfunktionen hinzufügen. Genauer gesagt müssen Sie Code hinzufügen, durch den der Synchronisierungsprozess initiiert wird. Sie fügen Steuerelemente zu dem Formular hinzu, um die Daten anzuzeigen und den Synchronisierungsprozess zu starten.

Zunächst fügen Sie ein DataGridView-Steuerelement hinzu, indem Sie den Knoten Customers aus dem Fenster Datenquellen in das Formular ziehen. In DataGridView wird die Tabelle Customers aus dem lokalen Datenbankcache (der Datenbank Northwind.sdf im Projekt) angezeigt, sodass Sie die Synchronisierung der Daten zwischen der lokalen und der Remotedatenbank überprüfen können. Sie fügen außerdem eine Schaltfläche zum Starten des Synchronisierungsprozesses hinzu.

So erstellen Sie ein datengebundenes Formular, um die Datensynchronisierung zu starten und zu überprüfen

  1. Ziehen Sie den Knoten Customers aus dem Datenquellenfenster auf Form1.

  2. Ziehen Sie ein Button-Steuerelement aus der Toolbox in Form1. Legen Sie für die zugehörige Name-Eigenschaft die Option SynchronizeButton und für die Text-Eigenschaft die Option Jetzt synchronisieren fest.

  3. Doppelklicken Sie auf die Schaltfläche Jetzt synchronisieren, um einen Schaltflächenklick-Ereignishandler zu erstellen und das Formular im Code-Editor zu öffnen.

  4. Fügen Sie Code hinzu, um den Synchronisierungsprozess zu starten und anschließend die Tabelle Customers im Dataset erneut zu füllen. Der Code im Ereignishandler sollte dem folgenden entsprechen:

    Hinweis:

    Die Codezeile, die die syncStats-Variable deklariert, wird weiter unten in diesem Dokument erläutert.

    ' Call the Synchronize method to synchronize
    ' data between local and remote databases.
    Dim syncAgent As NorthwindCacheSyncAgent = New NorthwindCacheSyncAgent()
    Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = _
        syncAgent.Synchronize()
    
    ' After synchronizing the data, refill the
    ' table in the dataset.
    Me.CustomersTableAdapter.Fill(NorthwindDataSet.Customers)
    
    // Call the Synchronize method to synchronize
    // data between local and remote databases.
    NorthwindCacheSyncAgent syncAgent = new NorthwindCacheSyncAgent();
    Microsoft.Synchronization.Data.SyncStatistics syncStats;
    syncStats = syncAgent.Synchronize();
    // After synchronizing the data, refill the
    // table in the dataset.
    this.customersTableAdapter.Fill(this.northwindDataSet.Customers);
    

Testen der Anwendung

So testen Sie die Anwendung

  1. Drücken Sie die Taste F5.

  2. Wenn die Anwendung ausgeführt wird, verwenden Sie den Server-Explorer/Datenbank-Explorer (oder ein anderes Tool zur Datenbankverwaltung), um eine Verbindung zur Remoteserver-Datenbank herzustellen und einige Datensätze zu ändern.

    1. Suchen Sie mit dem Server-Explorer/Datenbank-Explorer die Tabelle Customers auf dem Remotedatenbankserver (nicht die Verbindung zu Northwind.sdf).

    2. Klicken Sie mit der rechten Maustaste auf die Tabelle Customers, und klicken Sie auf Tabellendaten anzeigen.

    3. Ändern Sie einen oder mehrere Datensätze, und führen Sie einen Commit für die Änderung aus. (Navigieren Sie weg von der geänderten Zeile.)

  3. Wechseln Sie zum Formular zurück, und klicken Sie auf Jetzt synchronisieren.

  4. Überprüfen Sie, ob die Änderungen an der Remotedatenbank mit der lokalen Datenbank synchronisiert sind und im Formular angezeigt werden.

  5. Schließen Sie das Formular. (Den Debugvorgang beenden.)

Abrufen von Informationen aus einer Synchronisierung

Wenn Sie die Synchronize-Methode aufrufen, wird nicht nur der Synchronisierungsprozess gestartet. Durch die Synchronize-Methode wird außerdem ein SyncStatistics-Objekt zurückgegeben, von dem aus Sie auf Informationen über die Synchronisierung zugreifen können.

So greifen Sie auf die Synchronisierungsstatistik zu

  • Öffnen Sie im Code-Editor Form1, und fügen Sie am Ende des SynchronizeButton_Click-Ereignishandlers unterhalb des im vorherigen Schritt hinzugefügten Codes den folgenden Code hinzu:

        MessageBox.Show("Changes downloaded: " & _
    syncStats.TotalChangesDownloaded.ToString)
    
    MessageBox.Show("Changes downloaded: " +
        syncStats.TotalChangesDownloaded.ToString());
    

Testen der Anwendung

So testen Sie die Anwendung

  1. Drücken Sie die Taste F5.

  2. Wenn die Anwendung ausgeführt wird, verwenden Sie den Server-Explorer/Datenbank-Explorer (oder ein anderes Tool zur Datenbankverwaltung), um eine Verbindung zur Remoteserver-Datenbank herzustellen und einige Datensätze zu ändern.

    1. Suchen Sie mit dem Server-Explorer/Datenbank-Explorer die Tabelle Customers auf dem Remotedatenbankserver (nicht die Verbindung zu Northwind.sdf).

    2. Klicken Sie mit der rechten Maustaste auf die Tabelle Customers, und klicken Sie auf Tabellendaten anzeigen.

    3. Ändern Sie einen oder mehrere Datensätze, und führen Sie einen Commit für die Änderung aus. (Navigieren Sie weg von der geänderten Zeile.)

  3. Wechseln Sie zum Formular zurück, und klicken Sie auf Jetzt synchronisieren.

  4. Ein Meldungsfeld wird angezeigt, das Informationen über synchronisierte Datensätze enthält.

  5. Überprüfen Sie, ob die Änderungen an der Remotedatenbank mit der lokalen Datenbank synchronisiert sind und im Formular angezeigt werden.

Nächste Schritte

Je nach den Anforderungen Ihrer Anwendung können Sie verschiedene Schritte ausführen, nachdem Sie einen Cache für lokale Datenbanken in einer Anwendung konfiguriert haben. Beispielsweise können Sie der Anwendung folgende Erweiterungen hinzufügen:

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Bereitstellen einer gelegentlich verbundenen Clientanwendung mit der lokalen Datenbank

Konzepte

Übersicht über gelegentlich verbundene Anwendungen

SQL Server Compact 3.5 und Visual Studio

Änderungsverlauf

Date

Versionsgeschichte

Grund

Juli 2008

Zusätzliches Thema

SP1-Featureänderung.