1.偶爾連線應用程式程式
• “偶爾連線應用程式程式”是一種使用遠端資料庫中的資料、但卻不總是能夠訪問遠端資料庫的應用程式。
• 雖然遠端資料庫可隨時訪問,但如果不斷地從遠端資料庫查詢那些很少發生變化的資料(如狀態列表),則可能使
效率很低,這時也可使用偶爾連線應用程式程式。
• 在這些情況下,應用程式可以使用位於用戶端的本機資料庫中儲存的資料,並定期與遠端資料庫進行資料同步。
• 此外,除了為需要偶爾連線應用程式程式使用本機資料庫緩衝外,還可以考慮將很少變化或按照已知時間表更改的數
據儲存到本機資料庫緩衝中。
2.資料同步方式對比
3.使用Sync Services 同步資料
• 可以對緩衝進行配置,以儲存單個表、表集合、或從表查詢到的特定記錄
(例如, 集合或從表查詢到的特定記錄例如擁有特定銷售代表的客戶)。
• 用戶端資料庫與伺服器資料庫之間的資料同步是由Microsoft Synchronization
Services for ADO.NET(Microsoft.Synchronization.Data 命名空間)實現的。
4.Synchronization Services API
• 命名空間:Microsoft.Synchronization.Data
• Microsoft Synchronization Services for ADO.NET 是專為偶爾連線應用程式程式設計的。
• 可以通過雙層、n 層和基於服務的體繫結構,在異類源之間同步資料。
• Synchronization Services API不僅複製資料庫及其架構,而且提供了一組組件,可
在資料服務和本機存放區區之間同步資料。
5.安裝Sync Services API 和文檔
• Synchronization Services API 不屬於.NET Framework,而是SQL Server Compact 3.5 安裝的一部分
(預設情況下,安裝Visual Studio 時會安裝SQL Server Compact 3.5)。
• 若要安裝Synchronization Services 文檔以便於本地使用,必須先從Microsoft Synchronizationy Services for ADO.NET Books Online
(Microsoft Synchronization Services for ADO.NET 聯機叢書)網站下載說明集合。
6.在應用程式中配置資料同步
• 本機資料庫緩衝使用SQL Server Compact 3.5 資料庫在本機存放區資料。
• 可以將現有的SQL Server Compac t 3.5 資料庫用作本機資料庫緩衝。
• 如果還沒有本機資料庫,可以設定“配置資料同步”對話方塊,以建立一個新的本機資料庫。
• 在嚮應用程式中添加本機資料庫並完成配置資料同步對話方塊的設定後,還必須嚮應用程式中添加啟動同步的代碼。
• 成功同步資料後,還必須添加代碼,以便從本機資料庫重新填充資料集中的表。
7.“配置資料同步”對話方塊
• “配置資料同步”對話方塊僅可用於為下載方案配置Microsoft Synchronization Services for ADO.NET。
• 也就是說,在使用“配置資料同步”對話方塊配置資料同步之後,調用Synchronize()方法將只能利用在遠端資料庫上找到的更改來更新本機資料庫。
• 對本機資料庫上的資料所進行的更改將不會上傳到遠端資料庫。
• 在使用“配置資料同步”對話方塊配置資料同步之後可以用編程方式在同步期間啟用上傳(雙向同步)。
8.配置資料同步
• 伺服器串連:提供到遠端資料庫的資料連線
• 用戶端串連:提供到本機資料庫的資料連線,或在用戶端上建立新的資料庫。
• “緩衝的表”:從遠端連線選擇您要在您的應用程式中使用的表。
• 為每個要添加到本機資料庫中的表,選擇協調更改所需的列和用於儲存刪除項的表。
除了跟蹤已刪除記錄的表之外每個表還需要跟蹤新記錄和 刪除記錄的表之外,每個表還需要跟蹤新記錄和
已修改記錄的特定列。
9.遠端資料庫所需的附加項
10.啟用同步
• 添加“本機資料庫緩衝”並在“配置資料同步”對話方塊中提供配置資訊後,還必須向您的應用程式添加代碼才能實先同步本
地資料庫和遠端資料庫。
• 通過調用SyncAgent 的Synchronize 方法可以啟動同步。
• 然後,可以調用TableAdapter.Fill 方法以本機資料庫中已更新的資料載入資料集的資料表。
11.同步方向
• 僅下載同步
• 僅上傳同步
• 快照同步
• 雙向同步
12.無法緩衝的表
• 不使用使用者預設架構的表。
• 未定義主鍵的表。
• 名稱超過118 個字元的表。
• 包含資料類型不受SQL Server Compact 3.5 支援的列的表。
13.執行個體:建立偶爾連線應用程式程式
a)建立一個表單應用程式項目:RefactorOCSWalkthrough
b)右擊項目,添加新項:
c)點擊添加
d)點擊添加
e)點擊確定
f)點擊確定
g)點擊 下一步
h)點擊完成,此時的項目結構:
i)將資料來源拖到表單上,並添加同步按鈕
j)修改後台代碼:
View Code
private void customersBindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.customersBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.northwindDataSet); } private void Form1_Load(object sender, EventArgs e) { // TODO: 這行代碼將資料載入到表“northwindDataSet.Customers”中。您可以根據需要移動或刪除它。 this.customersTableAdapter.Fill(this.northwindDataSet.Customers); } private void SynchronizeButton_Click(object sender, EventArgs e) { NorthwindCacheSyncAgent syncAgent = new NorthwindCacheSyncAgent(); Microsoft.Synchronization.Data.SyncStatistics syncStats = syncAgent.Synchronize(); this.customersTableAdapter.Fill(this.northwindDataSet.Customers); MessageBox.Show(syncStats.TotalChangesDownloaded.ToString()); }
這樣就可以同步遠端資料庫和本機資料庫了.
未完待續,敬請期待...
轉載請註明出處:http://www.cnblogs.com/refactor