Gewusst wie: Konfigurieren der Datensynchronisierung in einer Anwendung
Aktualisiert: Juli 2008
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. Die Anwendung kann für die Synchronisierung von Daten zwischen der lokalen und der Remotedatenbank eingerichtet werden, indem das Dialogfeld Datensynchronisierung konfigurieren verwendet wird, um Microsoft Synchronization Services für ADO.NET zu konfigurieren.
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. Wählen Sie bei der Konfiguration eines typisierten Datasets auf der Seite Datenbankobjekte auswählen des Assistenten die Option Zwischenspeichern der lokalen Datenbank aktivieren aus. Weitere Informationen hierzu finden Sie unter Exemplarische Vorgehensweise: Erstellen einer gelegentlich verbundenen Anwendung mit dem Assistenten zum Konfigurieren von Datenquellen.
Hinweis: In Projekten für intelligente Geräte kann der Synchronisierungs-Designer nicht im Assistent zum Konfigurieren von Datenquellen gestartet werden. Weitere Informationen finden Sie unter Gelegentlich verbundene Anwendungen (Geräte). Darüber hinaus wurde in Visual Studio 2008 SP1 die Unterstützung des Nachverfolgungsfeatures von SQL Server 2008 hinzugefügt. Sie können die Änderungsnachverfolgung von SQL Server 2008 aktivieren, wenn Sie die Synchronisierung im Dialogfeld Datensynchronisierung konfigurieren oder im Assistenten zum Konfigurieren von Datenquellen konfigurieren. Weitere Informationen hierzu finden Sie unter Gewusst wie: Konfigurieren der Datensynchronisierung zum Verwenden der SQL Server-Änderungsverfolgung.
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.
Hinweis: |
---|
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 SYNC-Dateien mit dem Dialogfeld "Neues Element hinzufügen" zu Projekten hinzufügen.
Im folgenden Verfahren werden die grundlegenden Schritte zum Konfigurieren der Datensynchronisierung beschrieben. Beispiele mit realen Daten finden Sie unter Exemplarische Vorgehensweise: Erstellen einer gelegentlich verbundenen Anwendung und Exemplarische Vorgehensweise: Erstellen einer gelegentlich verbundenen Anwendung für intelligente Geräte.
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 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.
Hinweis: 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.
Hinweis: 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.
Hinweis: 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.
Hinweis: |
---|
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.
' Call SyncAgent.Synchronize() to initiate the synchronization process. ' Synchronization only updates the local database, not your project's data source. Dim syncAgent As LocalDataCache1SyncAgent = New LocalDataCache1SyncAgent() Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = syncAgent.Synchronize() ' Add code here to refill your application's data source ' with the updated data from the local database.
// Call SyncAgent.Synchronize() to initiate the synchronization process. // Synchronization only updates the local database, not your project's data source. LocalDataCache1SyncAgent syncAgent = new LocalDataCache1SyncAgent(); Microsoft.Synchronization.Data.SyncStatistics syncStats = syncAgent.Synchronize(); // Add code to refill your application's data source // with the updated data from the local database.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Erstellen einer gelegentlich verbundenen Anwendung
Beispiel für gelegentlich verbundene Daten
Konzepte
Übersicht über gelegentlich verbundene Anwendungen
Gelegentlich verbundene Anwendungen (Geräte)
Weitere Ressourcen
Gelegentlich verbundene Anwendungen
Änderungsverlauf
Date |
Versionsgeschichte |
Grund |
---|---|---|
Juli 2008 |
Zusätzliche Informationen zum Konfigurieren der Datensynchronisierung mit dem Assistenten zum Konfigurieren von Datenquellen |
SP1-Featureänderung. |
Juli 2008 |
Zusätzliche Hinweise zur Synchronisierung in Projekten für intelligente Geräte. |
SP1-Featureänderung. |