首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server Compact Edition 應用程式建立完整指南

     編輯:MySQL 資料庫相關知識

開發基於 SQL Server Compact Edition (SQL Server CE) 的智慧型裝置應用程式,需完成伺服器端發佈設定、Web 同步架構建置、本地資料庫與訂閱建立、以及用戶端程式碼撰寫等關鍵步驟。本文整理從 SQL Server 2005 環境下的完整建置流程,協助開發者快速上手。

一、伺服器端資料庫與發佈建立

  1. 建立範例資料庫並填入資料:使用預建腳本快速建立資料庫結構與測試資料。
  2. 準備發佈環境:建立快照代理帳戶、共享快照資料夾(供所有發佈使用),若已存在可略過。
  3. 建立發佈:透過「新增發佈精靈」定義發行項目、篩選條件與同步排程。
  4. 設定權限:授予快照代理帳戶與 IIS 匿名使用者資料庫權限,並將 IIS 匿名帳戶加入發佈存取清單 (PAL)。
  5. 建立初始快照:只有完成快照產生後,行動裝置訂閱才能初始化。

二、設定 IIS 與 Web 同步

讓 SQL Server CE 用戶端能透過 HTTP/HTTPS 連線同步:

  • 安裝 SQL Server Compact Edition 伺服器端元件(含 ISAPI DLL)。
  • 在 IIS 建立虛擬目錄,對應至同步代理程式(sqlcesa30.dll)。
  • 於發佈屬性中啟用 Web 同步,指定虛擬目錄 URL。

三、本地端建立 SQL Server CE 資料庫與訂閱(開發階段)

使用 SQL Server Management Studio 在本機建立 .sdf 檔與訂閱,方便開發期間離線測試資料存取邏輯。

四、智慧型裝置專案程式碼實作 (C#)

核心步驟:建立智慧裝置專案 → 加入 System.Data.SqlServerCe 參考 → 設定資料連線 → 設計表單繫結 → 撰寫同步邏輯。

關鍵程式碼片段

// 定義本地 .sdf 檔路徑
string filename = @"\Program Files\SQLMobile\sqlmobile.sdf";

// 啟動時刪除舊資料庫,確保同步最新資料
private void DeleteDB() {
    if (System.IO.File.Exists(filename))
        System.IO.File.Delete(filename);
}

// 執行合併式同步
private void Sync() {
    SqlCeReplication repl = new SqlCeReplication();
    repl.InternetUrl = @"https://<server>/sqlmobile/sqlcesa30.dll";
    repl.Publisher = @"<server>";
    repl.PublisherDatabase = @"SQLMobile";
    repl.PublisherSecurityMode = SecurityType.NTAuthentication;
    repl.Publication = @"SQLMobile";
    repl.Subscriber = @"SQLMobile";
    repl.SubscriberConnectionString = 
        @"Data Source='" + filename + "';Password='';Max Database Size='128';";
    try {
        repl.AddSubscription(AddOption.CreateDatabase); // 建立新資料庫
        repl.Synchronize();
    } catch (SqlCeException e) {
        MessageBox.Show(e.ToString());
    }
}

// Form 載入時觸發
private void Form1_Load(object sender, EventArgs e) {
    DeleteDB();
    Sync();
}

五、部署與測試

透過 Visual Studio 部署至模擬器或實體裝置,驗證同步功能與資料顯示是否正常。正式環境建議啟用 SSL 與強式驗證,保障資料傳輸安全。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved