Gewusst wie: Konfigurieren der Datensynchronisierung in einer Anwendung
Wenn für eine Anwendung Daten aus einer Remotedatenbank erforderlich sind, die nicht fortlaufend aus der Datenbank abgerufen werden müssen (oder nicht ständig verfügbar sind), können Sie die Daten in einer lokalen Datenbank auf dem Clientcomputer mit der Anwendung speichern.
Angenommen, eine Bestandskontrollanwendung verwendet Daten aus mehreren Tabellen einer Datenbank. Die Anzahl vorrätiger Artikel für einzelne Produkte ist eine wichtige Information, die sich ständig ändert. Daher sollte die Anwendung immer die aktuellen Werte in der Datenbank wiedergeben. Die Anwendung zeigt jedoch auch eine sich selten ändernde Liste gültiger Transportunternehmen an. Diese gültigen Transportunternehmen sind in der Tabelle der Spediteure gespeichert und müssen nicht bei jeder Abfrage aus der Datenbank abgerufen werden. Wenn Sie diese Tabelle der Spediteure in einem Cache für die lokale Datenbank speichern, können Sie die Anzahl unnötiger Roundtrips der Anwendung zur Remotedatenbank verringern. Daten, die nur selten (oder in bestimmten Abständen) geändert werden, sollten in einem lokalen Datenbankcache gespeichert werden.
Der Cache für lokale Datenbanken speichert Daten lokal in einer SQL Server Compact 3.5-Datenbank. Sie können eine vorhandene SQL Server Compact 3.5-Datenbank als Cache für lokale Datenbanken verwenden. Falls noch keine lokale Datenbank vorhanden ist, können Sie mit dem Dialogfeld Datensynchronisierung konfigurieren eine neue lokale Datenbank erstellen.
Nachdem eine lokale Datenbank zur Anwendung hinzugefügt und das Dialogfeld Datensynchronisierung konfigurieren abgeschlossen wurde, muss der Anwendung noch Code für den Start der Synchronisierung hinzugefügt werden. Nach der erfolgreichen Synchronisierung der Daten muss zusätzlich Code hinzugefügt werden, um die Tabelle im DataSet erneut mit Daten aus der lokalen Datenbank zu füllen.
Tipp
Das Dialogfeld Datensynchronisierung konfigurieren bietet die Möglichkeit, Microsoft Synchronization Services für ADO.NET nur für Downloadszenarien zu konfigurieren. Das bedeutet, dass nach dem Konfigurieren der Datensynchronisierung im Dialogfeld Datensynchronisierung konfigurieren durch Aufrufen von Microsoft.Synchronization.Data.SyncAgent.Synchronize die lokale Datenbank nur mit den Änderungen aktualisiert wird, die in der Remotedatenbank festgestellt wurden. Änderungen, die an den Daten in der lokalen Datenbank vorgenommen wurden, werden nicht zur Remotedatenbank hochgeladen. Nach der Datensynchronisierung mithilfe des Dialogfelds Datensynchronisierung konfigurieren können Uploads während der Synchronisierung programmgesteuert aktiviert werden (bidirektionale Synchronisierung). Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren einer lokalen und einer Remotedatenbank für bidirektionale Synchronisierung.
Hinzufügen eines Cache für lokale Datenbanken zu einem Projekt
Anwendungen können für die lokale Zwischenspeicherung von Daten konfiguriert werden, indem Sie eine SYNC-Datei zum Projekt hinzufügen und dieses mithilfe des Dialogfelds Datensynchronisierung konfigurieren konfigurieren. Sie können Projekten im Dialogfeld Neues Element hinzufügen SYNC-Dateien hinzufügen.
Im folgenden Verfahren werden die grundlegenden Schritte zum Konfigurieren der Datensynchronisierung beschrieben. Beispiele für die Verwendung von echten Daten finden Sie unter Exemplarische Vorgehensweise: Erstellen einer gelegentlich verbundenen Anwendung.
Tipp
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 konfigurieren Sie die Datensynchronisierung
Klicken Sie im Menü Projekt auf Neues Element hinzufügen.
Klicken Sie auf die Vorlage Cache für lokale Datenbanken.
Geben Sie einen alternativen Namen ein, oder übernehmen Sie den Standardnamen LocalDataCache1.sync.
Klicken Sie auf Hinzufügen.
Die SYNC-Datei wird zum Projekt hinzugefügt, und das Dialogfeld Datensynchronisierung konfigurieren wird geöffnet.
Legen Sie die Serververbindung für die Remotedatenbank fest, zu der Sie eine Verbindung herstellen möchten.
Legen Sie die Clientverbindung für die lokale SQL Server Compact 3.5-Datenbank fest, in der die Daten lokal gespeichert werden. Wenn noch keine lokale Datenbank besteht, kann die Standardeinstellung Datenbankname.sdf (neu) beibehalten werden, um im Projekt eine neue Datenbank zu erstellen. Der Name der neuen Datenbank wird auf Grundlage des Namens der Datenbank in der Serververbindung erstellt.
Tipp
Die Schaltfläche OK wird standardmäßig angezeigt und aktiviert, nachdem der Tabelle der Bereich Zwischengespeicherte Tabellen hinzugefügt wurde.
Klicken Sie auf Hinzufügen, um das Dialogfeld Tabellen für die Offlineverwendung konfigurieren zu öffnen, und wählen Sie die Datenbanktabellen aus, die zum Cache für lokale Datenbanken hinzugefügt werden sollen.
Wählen Sie die Datenbanktabellen aus, die zum Cache für lokale Datenbanken hinzugefügt werden sollen, und konfigurieren Sie die folgenden Einstellungen:
Herunterzuladende Daten:
Neue und inkrementelle Änderungen nach der ersten Synchronisierung
Mit dieser Einstellung werden Datensätze vom Server abgerufen, die seit der letzten Synchronisierung der Daten geändert wurden. Die erstmalige Synchronisierung wird aufgerufen, die gesamte Tabelle wird heruntergeladen.
Immer gesamte Tabelle
Diese Einstellung verwirft die lokale Tabelle und ersetzt sie durch die Version auf dem Server.
Aktualisierungen vergleichen mit
Legen Sie diese Einstellung auf den Spaltennamen der ausgewählten Tabelle fest, mit der verfolgt wird, wann ein Datensatz zuletzt aktualisiert wurde. Standardmäßig werden in dieser Liste alle als DateTime oder TimeStamp definierten Spalten angezeigt. Wenn die Tabelle über keine Spalte zur Nachverfolgung von Datensatzänderungen verfügt, kann die Standardeinstellung LastEditDate (neu) beibehalten werden, mit der eine Nachverfolgungsspalte erstellt wird.
Einfügungen vergleichen mit
Legen Sie diese Einstellung auf den Namen der Spalte der ausgewählten Tabelle fest, mit der verfolgt wird, wann neue Datensätze zur Tabelle hinzugefügt werden. Standardmäßig werden in dieser Liste alle als DateTime oder TimeStamp definierten Spalten angezeigt. Wenn die Tabelle über keine Spalte zum Nachverfolgen neuer Einträge verfügt, kann die Standardeinstellung LastEditDate (neu) beibehalten werden, um eine Nachverfolgungsspalte zu erstellen.
Gelöschte Elemente verschieben nach
Legen diese Einstellung auf die Tabelle auf dem Datenbankserver fest, in der gelöschte Datensätze gespeichert werden. Standardmäßig wird in dieser Liste jede Tabelle mit dem Namen Tabellenname_Deleted oder Tabellenname_Tombstone angezeigt. Wenn die Datenbank über keine Tabelle zum Speichern gelöschter Elemente verfügt, kann die Standardeinstellung Tabellenname**_Tombstone (neu)** beibehalten werden, um die Tabelle für gelöschte Elemente zu erstellen.
Tipp
Konfigurieren Sie diese Einstellungen für jede Tabelle, die Sie für die Offlineverwendung konfigurieren.
Standardmäßig werden die Optionen zur Skriptgenerierung automatisch festgelegt, um die serverseitigen Skripte zum Konfigurieren des Datenbankservers zu generieren. Wenn Sie diese Skripte nicht benötigen oder über keinen Zugriff auf den Datenbankserver verfügen, können Sie entweder die Optionen deaktivieren und die Skripte manuell ausführen oder die Tabellen ändern. Wenn auf dem Server keine Änderungen erforderlich sind, werden keine Skripts generiert.
Tipp
Mit diesen Skripten werden den ausgewählten Tabellen Nachverfolgungsspalten hinzugefügt, die Tabellen für gelöschte Elemente erstellt und einige Trigger hinzugefügt, die zum Nachverfolgen von Einfüge-, Aktualisierungs- und Löschvorgängen in für die lokale Zwischenspeicherung eingerichteten Tabellen benötigt werden.
Klicken Sie auf OK.
Klicken Sie auf Codebeispiel anzeigen, um das Dialogfeld Codebeispiel zu öffnen, das einen Codeausschnitt zum Starten des Synchronisierungsprozesses enthält. Sie können diesen Ausschnitt in die Zwischenablage kopieren und in das Programm einfügen.
Legen Sie gegebenenfalls die Erweiterten Optionen fest.
Die Erweiterten Optionen im Dialogfeld Datensynchronisierung konfigurieren stellen Einstellungen bereit, mit denen sich steuern lässt, ob Tabellen getrennt oder in einer einzigen Transaktion synchronisiert werden. Mit diesen Optionen wird auch die Codetrennung für N-Tier-Anwendungen aktiviert.
Tabellen in einer einzigen Transaktion synchronisieren. Dies ist nicht standardmäßig aktiviert, und alle Tabellen werden einzeln synchronisiert. Wenn Fehler auftreten, wird nur in Tabellen mit Fehlern ein Rollback für die Änderungen ausgeführt. Wenn Sie diese Option aktivieren, werden alle Tabellen in einer einzigen Transaktion synchronisiert. Wenn Fehler auftreten, wird in allen Tabellen ein Rollback für alle Änderungen ausgeführt.
Synchronisierungskomponenten erstellen. Standardmäßig werden Synchronisierungskomponenten sowohl für den Client als auch für den Server generiert. Sie können diese Option, entsprechend den Anforderungen der Anwendung, auf Nur Client oder Nur Server festlegen.
Serverprojektverzeichnis. Standardmäßig werden die Synchronisierungskomponenten für den Server im aktuellen Projekt generiert. Legen Sie diese Option fest, um Synchronisierungskomponenten für den Server in allen Visual Basic-Projekten oder Visual C#-Projekten der Projektmappe zu generieren.
Clientprojektverzeichnis. Standardmäßig werden die Synchronisierungskomponenten für den Client im aktuellen Projekt generiert. Legen Sie diese Option fest, um Synchronisierungskomponenten für den Client in allen Visual Basic-Projekten oder Visual C#-Projekten der Projektmappe zu generieren.
Nach dem Beenden des Dialogfelds Datensynchronisierung konfigurieren muss Code zum Starten der Synchronisierung hinzugefügt werden.
Tipp
Beim Synchronisieren von Daten wird die lokale Datenbank aktualisiert, jedoch nicht die Tabelle im DataSet oder andere Objekte der Anwendung. Denken Sie daran, die Datenquelle der Anwendung mit den aktualisierten Daten aus der lokalen Datenbank neu zu laden. Rufen Sie z. B. die TableAdapter.Fill-Methode auf, um die Datentabelle des DataSets mit den aktualisierten Daten der lokalen Datenbank zu laden.
So starten Sie die Synchronisierung
Nachdem Sie den Code aus dem Dialogfeld Codebeispiel im vorherigen Abschnitt kopiert haben, können Sie ihn in die Anwendung einfügen. Sie können auch den folgenden Code an einer beliebigen Stelle in der Anwendung einfügen, an der Sie den Synchronisierungsprozess starten möchten.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Erstellen einer gelegentlich verbundenen Anwendung
Konzepte
Übersicht über gelegentlich verbundene Anwendungen
Weitere Ressourcen
Gelegentlich verbundene Anwendungen (Lokale Zwischenspeicherung von Datenbanken)