共用方式為


逐步解說:建立偶爾連接的應用程式

更新: 2008 年 7 月

「偶爾連接的應用程式」(Occasionally Connected Application) 是一種可能偶爾才會存取遠端資料的應用程式。因為這種應用程式不一定都會有存取權,所以會使用位於用戶端上本機資料庫中的資料,並定期同步處理遠端資料庫和本機資料庫上的資料。本機與遠端資料庫之間資料的同步處理,是透過 Microsoft Synchronization Services for ADO.NET 執行的 (Microsoft.Synchronization.Data 命名空間)。這個同步處理是在 [設定資料同步處理] 對話方塊中設定的。

從 Visual Studio 2008 SP1 開始,除了 [設定資料同步處理] 對話方塊之外,您還可以使用 [資料來源組態精靈] 來設定同步處理。在設定具型別資料集期間,在精靈的 [選擇您的資料庫物件] 頁面中,選取 [啟用本機資料庫快取] 選項。如需詳細資訊,請參閱逐步解說:使用資料來源組態精靈建立偶爾連接的應用程式

本逐步解說提供逐步指示,說明如何開發偶爾連接的應用程式。

在這個逐步解說中,您將執行下列工作:

  • 建立新的 Windows Form 應用程式。

  • 將新的 [本機資料庫快取] 加入至專案。

  • 將同步處理設定為執行下列工作:

    • 設定伺服器資料庫的資料連接。

    • 設定同步處理以建立新的本機資料庫。

    • 資料庫中選取您要與應用程式同步處理的資料表。

  • DataGridView 控制項加入至表單,以顯示本機資料庫中的資料。

  • 加入程式碼以啟始資料庫之間的同步處理。

  • 加入訊息方塊以顯示已同步處理之記錄數目的資訊。

必要條件

若要完成這個逐步解說,您需要下列項目:

  • 存取 SQL Server 版的 Northwind 範例資料庫。如需詳細資訊,請參閱 HOW TO:安裝範例資料庫

  • 已在執行 Visual Studio 的電腦上安裝 SQL Server Compact 3.5。

建立 Windows Form 應用程式

因為您要顯示 Windows Form 中的資料 (以確認同步處理是否成功),所以本逐步解說的第一個步驟就是建立一個新的 Windows Form 應用程式。

注意事項:

您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定

若要建立新的 Windows Form 應用程式

  1. 從 [檔案] 功能表中,建立新專案。

  2. 將專案命名為 OCSWalkthrough。

    注意事項:

    Visual Basic 和 C# 專案支援 [設定資料同步處理] 對話方塊,所以,請以其中一種語言建立新專案。

  3. 按一下 [Windows Form 應用程式] 範本,然後按一下 [確定]。如需詳細資訊,請參閱建立 Windows 架構的應用程式

    OCSWalkthrough 專案已建立,且加入至 [方案總管]。

將同步處理檔案加入至專案

建立偶爾連接的應用程式的下一步,就是在用戶端上加入 (或建立) 本機資料庫。若要加入可與遠端資料庫同步處理的本機資料庫,您要將 [本機資料庫快取] 範本加入至專案。使用 [加入新項目] 對話方塊,將本機資料庫快取檔案 (.sync 檔案) 加入至專案。

若要將同步處理設定檔加入至專案

  1. 按一下 [專案] 功能表上的 [加入新項目]。

  2. 按一下 [本機資料庫快取] 範本,並在 [名稱] 方塊中輸入 NorthwindCache.sync。

  3. 按一下 [加入]。

    NorthwindCache.sync 檔案已加入至 [方案總管],且 [設定資料同步處理] 對話方塊隨即出現。

設定資料同步處理

資料同步處理的設定包括下列工作:

  • 提供與遠端資料庫的資料連接。這是伺服器連接。

  • 提供資料連接至本機資料庫,或在用戶端上建立新的資料庫,如本逐步解說所示。這是用戶端連接。

  • 請從遠端連接中選取您要用於應用程式中的資料表。這些稱為「快取的資料表」(Cached Table)。

  • 為您加入本機資料庫的每一張資料表,選取協調變更所需的資料行,以及要用來儲存已刪除項目的資料表。除了用來記錄已刪除之記錄的資料表外,每一張資料表都需要特定資料行,可記錄新的和修改過的記錄。

設定資料連接

您現在要設定伺服器連接,以連接至遠端資料庫 (您的應用程式外部的資料庫)。用戶端連接可以連接至現有的 SQL Server Compact 3.5 資料庫,或者,您可以讓 [設定資料同步處理] 對話方塊為您建立新的本機資料庫。在本逐步解說中,您將建立與伺服器資料庫的連接,並讓預設的用戶端連接在專案中自動建立新的用戶端資料庫 (Northwind.sdf)。

若要設定伺服器與用戶端資料庫的資料連接

  1. 將 [伺服器連接] 選取為 SQL Server 版本的 Northwind 資料庫,或按一下 [加入] 以建立新連接至 SQL Server 版的 Northwind 資料庫。如需詳細資訊,請參閱 HOW TO:建立與 Northwind 資料庫的資料連線

  2. 保留 [用戶端連接] 的預設值 [Northwind.sdf (新的)]。如此便建立新的 SQL Server Compact 3.5 資料庫,並將它加入至您的專案中。

    選取伺服器連接後,[設定資料同步處理] 對話方塊會查詢伺服器上遠端資料庫中的可用資料表清單,並在擷取清單後啟用 [加入] 按鈕。

    注意事項:

    請注意,[確定] 按鈕尚未啟用。這是因為沒有針對同步處理選取任何資料表的緣故。下個章節會說明如何加入資料表,讓您啟用 [確定] 按鈕。

選取並設定您要離線使用的資料表

您現在要選取資料表以加入至用戶端資料庫,以及與應用程式同步處理。為您加入用戶端資料庫的每一張資料表,選取協調變更所需的追蹤資料行,以及要用來儲存已刪除項目的資料表。如果您保留預設的設定,則 [設定資料同步處理] 對話方塊會建立追蹤資料行以及已刪除項目的資料表。在這個逐步解說中,您將使用預設的設定。

若要設定本機快取用的資料表

  1. 按一下 [加入] 開啟 [設定離線使用的資料表] 對話方塊。

  2. 選擇並核取 [Customers] 資料表。

  3. 保留所有預設值。按一下 [確定]。

    [Customers] 資料表已加入至 [快取的資料表] 清單。

  4. 在 [設定資料同步處理] 對話方塊中,按一下 [確定]。

    追蹤資料行和已刪除項目的資料表已建立在伺服器上。Northwind.sdf 資料庫建立在專案中,而且是初次同步處理。

  5. 在 [資料來源組態精靈] 中選取並核取 [Customers] 資料表,然後按一下 [完成]。

    NorthwindDataSet.xsd 已加入至專案且關閉所有對話方塊。

啟用應用程式中的同步處理

當您完成前述的步驟時,資料同步處理就已設定完成。此時,您的應用程式內含下列內容:

  • 本機 Northwind 資料庫 (Northwind.sdf)。

  • 資料同步處理設定資訊 (NorthwindCache.sync)。

  • 由 [資料來源組態] 精靈產生的具型別資料集 [NorthwindDataSet.xsd]。其中包含從本機資料庫填入的 [Customers] 資料表。

  • [SQLScripts] 資料夾內含的指令碼,是用於建立追蹤資料行、已刪除項目的資料表,以及追蹤伺服器上之變更所需的觸發程序。

  • [SQLUndoScripts] 資料夾內含指令碼,可用於移除追蹤資料行、已刪除項目的資料表,以及加入至伺服器的必要觸發程序。

    注意事項:

    只有當伺服器需要進行修改時,才會建立 SQL 指令碼。如果伺服器已經有已刪除的項目資料表和追蹤資料行,則不會建立指令碼。

  • 下列 Microsoft Synchronization Services for ADO.NET DLL 的參考:

    • Microsoft.Synchronization.Data

    • Microsoft.Synchronization.Data.Server

    • Microsoft.Synchronization.Data.SqlServerCe

在您設定資料同步處理後,還是必須將同步處理功能加入至應用程式中。更精確的說,您必須加入會啟始同步處理程序的程式碼。

首先,您要將 [Customers] 節點從 [資料來源] 視窗拖曳至表單,以加入 DataGridView 控制項。DataGridView 會顯示本機資料庫快取 (專案中的 Northwind.sdf 資料庫) 中的 [Customers] 資料表,如此一來您便能確認本機與遠端資料庫是否正在執行資料同步處理。您也要加入按鈕以啟動同步處理程序。

若要建立資料繫結表單以初始化並確認資料同步處理

  1. 將 [Customers] 節點從 [資料來源] 視窗拖曳至 [Form1]。

  2. 從 [工具箱] 將 [Button] 控制項拖曳到 [Form1] 內。將按鈕的 [Name] 屬性設定為 [SynchronizeButton],[Text] 屬性設定為 [Synchronize Now]。

  3. 按兩下 [開始同步處理] 按鈕,以建立按鈕 Click 事件處理常式,並在 [程式碼編輯器] 中開啟表單。

  4. 加入程式碼以啟動同步處理程序,然後將 [Customers] 資料表重填至資料集中。事件處理常式中的程式碼應該類似下列程式碼:

    注意事項:

    下一節中將說明宣告 syncStats 變數的程式碼行。

    ' 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);
    

測試應用程式

若要測試應用程式

  1. 按 F5。

  2. 在應用程式執行時,使用 [伺服器總管]/[資料庫總管] (或其他資料庫管理工具) 連接至遠端伺服器資料庫並修改部分資料錄。

    1. 在 [伺服器總管]/[資料庫總管] 中,找出遠端資料庫伺服器上的 [Customers] 資料表 (不是 Northwind.sdf 的連接)。

    2. 以滑鼠右鍵按一下 [Customers] 資料表,然後按一下 [顯示資料表資料]。

    3. 修改一筆或多筆記錄並認可變更 (巡覽修改過的資料列)。

  3. 返回至表單並按一下 [開始同步處理]。

  4. 確認遠端資料庫的修改已同步處理至本機資料庫,並顯示在方格中。

  5. 關閉表單 (停止偵錯)。

擷取同步處理的資訊

當您呼叫 Synchronize 方法時,不只是初始化同步處理程序。Synchronize 方法也會傳回 SyncStatistics 物件,您可以用來存取同步處理的相關資訊。

若要存取同步處理統計資料

  • 在 [程式碼編輯器] 中開啟 [Form1],然後將下列程式碼加入至 SynchronizeButton_Click 事件處理常式的底部,即前述步驟中加入的程式碼之下:

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

測試應用程式

若要測試應用程式

  1. 按下 F5 鍵。

  2. 在應用程式執行時,使用 [伺服器總管/資料庫總管] (或其他資料庫管理工具) 連接至遠端伺服器資料庫並修改部分記錄。

    1. 在 [伺服器總管/資料庫總管] 中,找出遠端資料庫伺服器上的 [Customers] 資料表 (不是 Northwind.sdf 的連接)。

    2. 以滑鼠右鍵按一下 [Customers] 資料表,然後按一下 [顯示資料表資料]。

    3. 修改一筆或多筆記錄並認可變更 (巡覽修改過的資料列)。

  3. 返回至表單並按一下 [開始同步處理]。

  4. 隨即會出現一個訊息方塊,內含有關同步處理記錄的資訊。

  5. 確認遠端資料庫的修改已同步處理至本機資料庫,並顯示在方格中。

後續步驟

視應用程式的需求而定,您在應用程式中設定本機資料庫快取之後,可能還要執行幾個步驟。例如,您可以進行下列作業讓這個應用程式發揮更強的功能:

請參閱

工作

逐步解說:將偶爾連接的用戶端應用程式與本機資料庫一起部署

概念

偶爾連接的應用程式概觀

SQL Server Compact 3.5 和 Visual Studio

變更記錄

日期

記錄

原因

2008 年 7 月

新增可以使用 [資料來源組態精靈] 設定資料同步處理的相關段落。

SP1 功能變更。