SQL Server Compact Edition 程序建立步驟
SQL Server 2005 任務在創建應用程序之前,必須在 SQL Server 2005 中配置發布。在下列步驟中,您將創建一個示例數據庫,然后從該數據庫發布數據。您將使用預建的腳本文件創建數據庫,然后使用新建發布向導來創建發布。創建數據庫并在其中填充數據準備服務器以發布數據在創建發布之前,必須創建快照代理用戶帳戶,并創建一個將在其中存儲快照文件的共享文件夾,準備服務器以進行發布。創建快照文件夾之后,該文件夾將用于服務器上的所有發布。如果以前已在此服務器上創建了發布,您可以跳過這些步驟。 創建快照用戶帳戶創建快照文件夾創建發布設置權限您必須為快照代理帳戶和 IIS 匿名用戶帳戶授予權限。還必須將 IIS 匿名用戶帳戶添加到發布訪問列表 (PAL) 中。設置數據庫權限授予發布權限創建發布快照只有在創建發布快照之后才可對 SQLMobile 發布的訂閱進行初始化。創建發布快照_______________________________________________________________________________________配置 IIS 和 SQL Server 2005 以實現 Web 同步既然已對 SQL Server 配置了一個發布,則必須使該發布可以通過網絡供 SQL Server Compact Edition 客戶端使用。SQL Server Compact Edition 可通過 IIS 連接到 SQL Server。即,創建虛擬目錄并對其進行配置,從而允許客戶端訪問 SQL Server Compact Edition 服務器代理。安裝 SQL Server Compact Edition 服務器組件配置發布以進行 Web 同步_______________________________________________________________________________________SQL Server Compact Edition 任務如果在開發要使用 SQL Server Compact Edition 的應用程序之前預先創建 SQL Server Compact Edition 數據庫和訂閱,通常會節省大量時間。SQL Server Management Studio 允許您在本地計算機上創建并使用 SQL Server Compact Edition 數據庫。然后,您可以在開發應用程序時使用此數據庫。創建新的 SQL Server Compact Edition 數據庫創建新的訂閱
配置步驟為三步:;;創建發布-->web同步-->創建訂閱_______________________________________________________________________________________生成應用程序創建新的智能設備項目添加引用 添加數據連接選擇要顯示的數據添加節點在應用程序的代碼頁中,可添加包含數據庫文件的路徑和名稱的字符串變量、用于刪除數據庫文件(如果已存在)的代碼、用于創建與 SQL Server 發布的連接、同步數據和創建一個包含已發布數據的新本地數據庫的代碼。添加代碼在解決方案資源管理器中,右鍵單擊“Form1”,然后選擇“查看代碼”。在代碼頁中,查找 Form1 的類定義。添加一個字符串變量,并賦值為 .sdf 文件的路徑和文件名。Visual Studio 在先前步驟中創建的數據源需要數據庫文件駐留在 Program FilesApplicationName 文件夾中,其中 ApplicationName 為應用程序的名稱。例如,如果您命名了新項目 SQLMobile,則應將字符串變量設置為 'Program FilesSQLMobilesqlmobile.sdf'。類定義的前幾行應該與以下代碼類似:[C#]復制代碼 public partial class Form1 : System.Windows.Forms.Form{ private System.Windows.Forms.MainMenu mainMenu1; string filename = @'Program FilesSQLMobilesqlmobile.sdf';
public Form1() { InitializeComponent(); }如果當前存在數據庫文件,則將創建新方法將該數據庫文件刪除。這將確保應用程序在每次運行時加載最新的數據。此方法應該命名為 DeleteDB。此代碼應該與以下代碼類似:[C#]復制代碼 private void DeleteDB(){ if (System.IO.File.Exists(filename)) { System.IO.File.Delete(filename); }}創建名為“Sync”的執行同步的新方法。若要執行此操作,您將使用從前面步驟的“新建發布向導”中復制的代碼。在粘貼代碼后,必須對代碼執行兩項更改:更改 SubscriberConnectionString 值,以便該值指向文件名變量中指定的正確路徑和文件名。將 AddOption 值從 ExistingDatabase 更改為 CreateDatabase。更改完成后,Sync 方法應如下所示:[C#]復制代碼 private void Sync(){ SqlCeReplication repl = new SqlCeReplication();
repl.InternetUrl = @'http://<computername>/sqlmobile/sqlcesa30.dll'; repl.Publisher = @'<computername>'; repl.PublisherDatabase = @'SQLMobile'; repl.PublisherSecurityMode = SecurityType.NTAuthentication; repl.Publication = @'SQLMobile'; repl.Subscriber = @'SQLMobile'; repl.SubscriberConnectionString = @'Data Source='' + filename + '';Password='';Max Database Size='128';Default Lock Escalation ='100';'; try { repl.AddSubscription(AddOption. CreateDatabase); repl.Synchronize(); } catch (SqlCeException e) { MessageBox.Show(e.ToString()); }}最后,在調用最新創建的兩個方法的 Form1_Load 事件處理程序的開頭添加代碼。Form1_Load 事件處理程序應如下所示:[C#]復制代碼 private void Form1_Load(object sender, EventArgs e){ DeleteDB(); Sync();
// TODO: Delete this line of code. this.flightDataTableAdapter.Fill(this.sqlmobileDataSet.FlightData);// TODO: Delete this line of code. this.membershipDataTableAdapter.Fill(this.sqlmobileDataSet.MembershipData);}_______________________________________________________________________________________部署并測試應用程序部署應用程序