共用方式為


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

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

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

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

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

  • 建立新的 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] 屬性設定為 [開始同步處理]。

  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