作者:佚名 點擊數(shù):452 文章來源:
天極論壇整理 更新時間:2007-9-27
此演練將介紹如何在使用 Microsoft SQL Server 2005 Compact Edition 的 Microsoft Visual Studio 2005 中創(chuàng)建應用程序。SQL Server Compact Edition 數(shù)據(jù)庫將成為 SQL Server 2005 發(fā)布的訂閱服務器,并且將使用合并復制從 SQL Server 2005 數(shù)據(jù)庫中將信息下載到 SQL Server Compact Edition 數(shù)據(jù)庫。
在此演練中,您將執(zhí)行下列步驟: 配置 SQL Server 2005 發(fā)布。 配置 Internet 信息服務 (IIS) 以進行復制。 創(chuàng)建 SQL Server Compact Edition 訂閱。 創(chuàng)建應用程序。 部署應用程序并測試訂閱。
必備項
若要按照此演練中所寫的步驟執(zhí)行此演練,則必須滿足下列條件:
安裝有 Windows XP 和 IIS 的計算機。 SQL Server 2005 Service Pack 2 (SP2) 或更高版本,與 Visual Studio 安裝在同一臺計算機上。
SQL Server 2005 任務
在創(chuàng)建應用程序之前,必須在 SQL Server 2005 中配置發(fā)布。在下列步驟中,您將創(chuàng)建一個示例數(shù)據(jù)庫,然后從該數(shù)據(jù)庫發(fā)布數(shù)據(jù)。您將使用預建的腳本文件創(chuàng)建數(shù)據(jù)庫,然后使用新建發(fā)布向導來創(chuàng)建發(fā)布。
創(chuàng)建數(shù)據(jù)庫并在其中填充數(shù)據(jù)
1、打開 SQL Server Management Studio。
2、當提示您連接服務器時,請在“服務器名稱”中鍵入 (local),然后單擊“連接”。
3、打開一個新查詢窗口。創(chuàng)建 SQL Server Compact Edition 數(shù)據(jù)庫,并用數(shù)據(jù)填充該數(shù)據(jù)庫。
以下是引用片段:
USE master;
GO
IF EXISTS (SELECT * FROM sys.sysdatabases WHERE name = ‘SQLMobile‘)
BEGIN
DROP Database SQLMobile;
END
GO
CREATE DATABASE SQLMobile;
GO
USE SQLMobile;
GO
CREATE TABLE MembershipData (MemberID INTEGER IDENTITY (1,1)
CONSTRAINT pkMemberID PRIMARY KEY, MemberName NVarChar (50));
CREATE TABLE FlightData (MemberID INTEGER FOREIGN KEY REFERENCES
MembershipData(MemberID), Destination NVarChar (50), FlightStatus
NVarChar(50), ArrivalDate DATETIME, FlownMiles INTEGER);
INSERT INTO MembershipData (MemberName) VALUES (‘Mr Don Hall‘);
INSERT INTO MembershipData (MemberName) VALUES (‘Mr Jon Morris‘);
INSERT INTO MembershipData (MemberName) VALUES (‘Ms TiAnna Jones‘);
INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
VALUES (1, ‘Seattle‘, ‘Flight Delayed 1 hour‘, ‘8/25/00‘, ‘20000‘);
INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
VALUES (2, ‘London‘, ‘Flight on time‘, ‘9/12/00‘, ‘15000‘);
INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
VALUES (3, ‘Sydney‘, ‘Flight Gate Closing‘, ‘11/5/00‘, ‘30000‘);
INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
VALUES (1, ‘Tokyo‘, ‘Delayed Fog‘, ‘5/25/00‘, ‘25000‘);
INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
VALUES (2, ‘Minneapolis‘, ‘Flight on time‘, ‘5/1/00‘, ‘1000‘);
INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
VALUES (3, ‘Memphis‘, ‘Flight Gate Closing‘, ‘1/5/00‘, ‘1000‘);
GO
4、單擊“執(zhí)行(!)”運行該腳本并創(chuàng)建數(shù)據(jù)庫。此時,將運行該腳本,創(chuàng)建一個名為 SQLMobile 的新數(shù)據(jù)庫。
注意:
您還可以按 F5,或者從“查詢”菜單中選擇“執(zhí)行”來運行該查詢。
5、若要確認該數(shù)據(jù)庫已創(chuàng)建,請在對象資源管理器中,展開“(本地)”,展開“數(shù)據(jù)庫”,然后展開“SQLMobile”。如果沒有列出 SQLMobile 數(shù)據(jù)庫。請右鍵單擊“數(shù)據(jù)庫”,然后選擇“刷新”以更新數(shù)據(jù)庫列表。
準備服務器以發(fā)布數(shù)據(jù)
在創(chuàng)建發(fā)布之前,必須創(chuàng)建快照代理用戶帳戶,并創(chuàng)建一個將在其中存儲快照文件的共享文件夾,準備服務器以進行發(fā)布。創(chuàng)建快照文件夾之后,該文件夾將用于服務器上的所有發(fā)布。如果以前已在此服務器上創(chuàng)建了發(fā)布,您可以跳過這些步驟。
創(chuàng)建快照用戶帳戶
1、從“控制面板”的“管理工具”中打開“計算機管理”。
2、在“計算機管理”中,展開“系統(tǒng)工具”,展開“本地用戶和組”,右鍵單擊“用戶”,然后選擇“新用戶”。
3、在“新用戶”對話框中,鍵入以下信息,然后單擊“創(chuàng)建”:
字段 值
用戶名
snapshot_agent
密碼
p@ssw0rd
確認密碼
p@ssw0rd
用戶下次登錄時須更改密碼
未選中
密碼永不過期
選中
重要事項:
這些設置應該僅用于測試。在生產(chǎn)環(huán)境中,請確保用戶帳戶設置符合您的網(wǎng)絡安全要求。通常,您將對快照代理使用域用戶帳戶而不是使用本地用戶帳戶。
創(chuàng)建快照文件夾
在 Windows 資源管理器中,創(chuàng)建一個名為“snapshot”的新文件夾。在此演練中,您可以在驅動器 C 的根目錄下創(chuàng)建該文件夾:c:\snapshot。右鍵單擊“snapshot”文件夾,然后選擇“共享和安全”。 在“共享”選項卡上,選擇“共享該文件夾”,然后單擊“權限”。 在“快照的權限”中,單擊“添加”。 在“輸入要選擇的對象名稱”中,鍵入 computername\snapshot_agent(其中 computername 為本地計算機的名稱),單擊“檢查名稱”,然后單擊“確定”。 在“快照的權限”中,選擇“snapshot_agent”,分配“更改”和“讀取”共享權限,然后單擊“確定”。 選擇“安全”選項卡。 單擊“添加”。 在“輸入要選擇的對象名稱”中,鍵入 computername\snapshot_agent(其中 computername 為本地計算機的名稱),單擊“檢查名稱”,然后單擊“確定”。 選擇“snapshot_agent”,然后將“寫入”權限添加到已啟用的權限列表中?,F(xiàn)在,snapshot_agent 帳戶將被授予下列權限: 讀取和執(zhí)行 列出文件夾目錄 讀取 寫入 單擊“確定”關閉“快照屬性”窗口。 關閉 Windows 資源管理器。
創(chuàng)建發(fā)布
在 SQL Server Management Studio 的對象資源管理器中,展開“(本地)”節(jié)點(如果當前尚未展開),然后展開“復制”。 右鍵單擊“本地發(fā)布”文件夾,然后選擇“新建發(fā)布”。 在新建發(fā)布向導簡介屏幕上,單擊“下一步”。 如果以前未曾在此計算機上創(chuàng)建發(fā)布,將提示您配置分發(fā)服務器。選擇第一個選項將本地計算機作為它自己的分發(fā)服務器,然后單擊“下一步”。 如果以前未曾在此計算機上創(chuàng)建發(fā)布,將提示您指定快照文件夾。鍵入前面過程中創(chuàng)建的快照文件夾的共享路徑。以 \\servername\share 格式鍵入共享路徑,不要鍵入本地路徑。在此演練中,我們建議您鍵入 \\computer\snapshot(其中 computer 是您計算機的名稱),然后單擊“下一步”。 在數(shù)據(jù)庫列表中,選擇“SQLMobile”,然后單擊“下一步”。 在發(fā)布類型列表中,選擇“合并發(fā)布”,然后單擊“下一步”。 在“訂閱服務器類型”頁中,選擇“是”以啟用對 SQL Server Compact Edition 訂閱服務器的支持,然后單擊“下一步”。 在要發(fā)布的對象列表中,選中“表”復選框。如果展開“表”,您將發(fā)現(xiàn) SQLMobile 數(shù)據(jù)庫中的兩個表都已被選中。單擊“下一步”。 會通知您將向表中添加唯一標識符。所有合并項目均需要 uniqueindentifier 列。單擊“下一步”。 在“篩選表行”頁中,現(xiàn)在即可添加對已發(fā)布數(shù)據(jù)的篩選器。對于此演練,您將無需篩選數(shù)據(jù)。單擊“下一步”。 在“快照代理”頁中,您可以配置創(chuàng)建快照的時間以及快照代理運行的頻率。單擊“下一步”以接受默認設置。 在“代理安全性”對話框中,單擊“安全設置”。 在“快照代理安全性”對話框中,輸入前面過程中所創(chuàng)建帳戶的登錄信息。進程帳戶為 computer_name\snapshot_agent(其中 computer_name 是您計算機的名稱),密碼為 p@ssw0rd。 單擊“確定”以保存設置。 在“代理安全性”頁中,單擊“下一步”。 在“向導操作”屏幕上,您可以確定創(chuàng)建發(fā)布的時間以及是否希望創(chuàng)建腳本文件。清除“立即創(chuàng)建快照”,然后單擊“下一步”。 在“完成該向導”屏幕上,鍵入 SQLMobile 作為發(fā)布的名稱,然后單擊“完成”。 將創(chuàng)建發(fā)布。向導完成后,單擊“關閉”。
設置權限
您必須為快照代理帳戶和 IIS 匿名用戶帳戶授予權限。還必須將 IIS 匿名用戶帳戶添加到發(fā)布訪問列表 (PAL) 中。
設置數(shù)據(jù)庫權限
在 的對象資源管理器中,展開“安全性”,右鍵單擊“登錄名”,然后選擇“新建登錄名”。 在“新建登錄名”對話框中,選擇“Windows 身份驗證”,單擊“搜索”,在“輸入要選擇的對象名稱”框中鍵入 computername\snapshot_agent(其中 computername 為您的計算機名稱),單擊“檢查名稱”,然后單擊“確定”。 在導航窗格中,選擇“用戶映射”窗格。 在數(shù)據(jù)庫列表中,選擇“distribution”和“db_owner”角色,選擇“SQLMobile”和“db_owner”角色,然后單擊“確定”。 右鍵單擊“登錄名”,然后選擇“新建登錄名”。 在“新建登錄名”對話框中,選擇“Windows 身份驗證”,單擊“搜索”,在“輸入要選擇的對象名稱”框中鍵入 computername\iusr_computername(其中 computername 為您的計算機名稱),單擊“檢查名稱”,然后單擊“確定”。 在導航窗格中,選擇“用戶映射”窗格。 在數(shù)據(jù)庫列表中,選擇“distribution”和“SQLMobile”,然后單擊“確定”。
授予發(fā)布權限
在對象資源管理器中,展開“復制”,展開“發(fā)布”,右鍵單擊“[SQLMobile]:SQLMobile”發(fā)布,然后單擊“屬性”。 在導航窗格中,選擇“發(fā)布訪問列表”。 單擊“添加”。在“添加發(fā)布訪問項”對話框中,列出了 IUSR 帳戶。選擇該帳戶,然后單擊“確定”。 請確保 IUSR 帳戶當前位于 PAL 中,然后單擊“確定”。
創(chuàng)建發(fā)布快照
只有在創(chuàng)建發(fā)布快照之后才可對 SQLMobile 發(fā)布的訂閱進行初始化。
在 SQL Server Management Studio 的對象資源管理器中,展開“(本地)”計算機節(jié)點。 展開“本地發(fā)布”文件夾,選擇發(fā)布名稱,右鍵單擊“SQLMobile”,然后單擊“查看快照代理狀態(tài)”。 在“查看快照代理狀態(tài)”對話框中,單擊“啟動”。 在進行下一操作之前,請確保已成功完成快照作業(yè)。
配置 IIS 和 SQL Server 2005 以實現(xiàn) Web 同步
既然已對 SQL Server 配置了一個發(fā)布,則必須使該發(fā)布可以通過網(wǎng)絡供 SQL Server Compact Edition 客戶端使用。SQL Server Compact Edition 可通過 IIS 連接到 SQL Server。即,創(chuàng)建虛擬目錄并對其進行配置,從而允許客戶端訪問 SQL Server Compact Edition 服務器代理。
安裝 SQL Server Compact Edition 服務器組件
在 Windows 資源管理器中,定位到以下目錄: C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE 雙擊 sqlce30setupen.msi 運行安裝程序。 在“安裝”向導的簡介屏幕上,單擊“下一步”。 閱讀并接受 Microsoft 軟件許可條款,然后單擊“下一步”。 在“系統(tǒng)配置檢查”屏幕上,確保所有項都通過檢查。如果尚未安裝 SQL Server 2000,則將列出該列表的最后一項作為警告。因為您正在使用 SQL Server 2005,所以這并不是問題。單擊“下一步”。 在接下來的屏幕上,單擊“下一步”,然后單擊“安裝”開始安裝。 單擊“完成”。
配置發(fā)布以進行 Web 同步
在 SQL Server Management Studio 的對象資源管理器中,展開“(本地)”計算機節(jié)點。 展開“本地發(fā)布”文件夾,選擇發(fā)布名稱,右鍵單擊該名稱,然后選擇“配置 Web 同步”。 在該向導的簡介屏幕上,單擊“下一步”。 在“訂閱服務器類型”屏幕上,選擇“SQL Server Compact Edition”,然后單擊“下一步”。 在“Web 服務器”屏幕的“運行 IIS 的計算機”文本框中,鍵入您計算機的名稱(如果尚未提供),然后單擊“創(chuàng)建新的虛擬目錄”。 在顯示的樹中,展開該計算機,展開“網(wǎng)站”,然后選擇“默認網(wǎng)站”。 單擊“下一步”。 在“虛擬目錄信息”屏幕上的“別名”文本框中,鍵入 SQLMobile,然后單擊“下一步”。 如果收到警告對話框,請單擊“是”。 在“安全通信”屏幕中,選擇“不需要使用安全通道 (SSL)”。 重要提示 在生產(chǎn)環(huán)境中,應該啟用 SSL 加密以保護在訂閱服務器與運行 IIS “客戶端身份驗證”屏幕的服務器之間通過 Internet 交換的數(shù)據(jù),選擇“客戶端將以匿名方式進行連接”,然后單擊“下一步”。 在“匿名訪問”屏幕上,單擊“下一步”接受默認設置。 在“快照共享訪問”屏幕上,鍵入 \\computer\snapshot(其中 computer 是您計算機的名稱),然后單擊“下一步”。 如果收到快照共享為空的警告,請單擊“是”。 單擊“完成”。 單擊“關閉”。 在 Internet Explorer 的“地址”中,輸入 URL http://localhost/SQLMobile/sqlcesa30.dll?diag,然后單擊“轉到”。從而以診斷模式連接到服務器。確保 SQL Server Compact Edition 服務器代理診斷報告顯示成功。
SQL Server Compact Edition 任務
如果在開發(fā)要使用 SQL Server Compact Edition 的應用程序之前預先創(chuàng)建 SQL Server Compact Edition 數(shù)據(jù)庫和訂閱,通常會節(jié)省大量時間。SQL Server Management Studio 允許您在本地計算機上創(chuàng)建并使用 SQL Server Compact Edition 數(shù)據(jù)庫。然后,您可以在開發(fā)應用程序時使用此數(shù)據(jù)庫。
創(chuàng)建新的 SQL Server Compact Edition 數(shù)據(jù)庫
在 SQL Server Management Studio 的對象資源管理器中,單擊“連接”,然后選擇“SQL Server Compact Edition”。 在“數(shù)據(jù)庫文件”字段中,選擇“<新建數(shù)據(jù)庫…>”。 在文件名文本框中,鍵入 c:\sqlmobile.sdf,然后單擊“確定”。 如果您收到有關空密碼的警告,請單擊“是”。本教程中的數(shù)據(jù)庫沒有密碼保護或進行加密。 在“連接到服務器”對話框中,單擊“連接”。 將在對象資源管理器中添加名為“SQL Server Compact Edition [My Computer\...\sqlmobile]”的新節(jié)點。
創(chuàng)建新的訂閱
在對象資源管理器中,展開“SQL Server Compact” Edition節(jié)點,展開“復制”,右鍵單擊“訂閱”,然后選擇“新建訂閱”。 在簡介屏幕上,單擊“下一步”。 在“選擇發(fā)布”屏幕的“發(fā)布服務器”下拉列表中,選擇“<查找 SQL Server 發(fā)布服務器…>”。 在“連接到服務器”對話框中,鍵入或選擇本地計算機名稱,然后單擊“連接”。 在“選擇發(fā)布”屏幕的發(fā)布列表中,展開“SQLMobile”,選擇“SQLMobile”發(fā)布,然后單擊“下一步”。 在“標識訂閱”屏幕上,為訂閱名稱鍵入 SQLMobile,然后單擊“下一步”。 在“Web 服務器身份驗證”屏幕上,鍵入前面過程中創(chuàng)建的虛擬目錄的 URL。在此演練中,您已經(jīng)創(chuàng)建了 URL 為 http://localhost/SQLMobile 的虛擬目錄。 單擊“訂閱服務器將以匿名方式進行連接”,然后單擊“下一步”。 在“SQL Server 身份驗證”屏幕上,單擊“下一步”接受默認設置。 在最終屏幕上,該向導將顯示示例代碼,您可以在應用程序中創(chuàng)建訂閱時使用該代碼。選擇示例代碼(Visual Basic 或 C#,取決于您在創(chuàng)建應用程序時使用的語言),然后復制代碼。若要執(zhí)行復制操作,請選擇該代碼并按 Ctrl+C,啟動記事本或其他文本編輯器,然后粘貼該示例代碼。在使用下列步驟創(chuàng)建應用程序時,您將使用此代碼。 在復制示例代碼之后,單擊“完成”。 單擊“關閉”。
生成應用程序
創(chuàng)建新的智能設備項目
打開 Visual Studio 2005。 在“文件”菜單上,選擇“新建項目”。 在“新建項目”對話框的“項目類型”樹中,展開您所使用的開發(fā)語言,然后選擇“智能設備”。 在模板列表中,選擇要創(chuàng)建的項目類型。對于此演練,請選擇“Pocket PC 2003 應用程序”。 為該項目提供名稱和位置,然后單擊“確定”。對于此演練,請將該項目命名為 SQLMobile。 Visual Studio 將創(chuàng)建新的項目,并顯示 Form1,這類似于在智能設備上進行顯示。
添加引用
1、在解決方案資源管理器中,右鍵單擊“引用”,然后選擇“添加引用”。
注意:
如果解決方案資源管理器中沒有列出“引用”文件夾,那么單擊解決方案資源管理器頂部的“顯示所有文件”。
2、在 .NET 程序集列表中,選擇“System.Data.SqlServerCe”,然后單擊“確定”。如果沒有列出 System.Data.SqlServerCe,請執(zhí)行下列步驟:
單擊“瀏覽”選項卡。
定位到以下目錄:
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
選擇“System.Data.SqlServerCe.dll”,然后單擊“確定”。
解決方案資源管理器中的引用列表現(xiàn)在包括 System.Data.SqlServerCe,并且您的項目可以使用該程序集。
3、在解決方案資源管理器中,右鍵單擊“Form1.cs”或“Form1.vb”,然后選擇“查看代碼”。
4、在窗體的代碼頂部,添加指令以使用 System.Data.SqlServerCe 命名空間:
[C#]
以下是引用片段:
using System.Data.SqlServerCe;
[VB]
以下是引用片段:
Imports System.Data.SqlServerCe
添加數(shù)據(jù)連接
在主窗口中,切換回 Form1 的“設計”(默認)視圖。 從“數(shù)據(jù)”菜單中,單擊“添加新數(shù)據(jù)源”。 注意 如果未顯示“添加新數(shù)據(jù)源”,請選擇 Form1 的“設計”視圖,然后再次查看“數(shù)據(jù)”菜單。 在“選擇數(shù)據(jù)源類型”窗口上,選擇“數(shù)據(jù)庫”,然后單擊“下一步”。 在“選擇您的數(shù)據(jù)連接”對話框中,單擊“新建連接”。 如果顯示“添加連接”對話框,請單擊“更改”。 在“選擇數(shù)據(jù)源”對話框的“數(shù)據(jù)源”中,選擇“Microsoft SQL Server Compact Edition”(如果連接已存在,則此對話框的名稱可能為“更改數(shù)據(jù)源”)。在數(shù)據(jù)訪問接口列表中,選擇“.NET Framework Data Provider for SQL Server Compact Edition”。單擊“繼續(xù)”或“確定”。 在“添加連接”對話框的“數(shù)據(jù)源”中,選擇“我的電腦”。 在“連接屬性”部分的“數(shù)據(jù)庫”中,單擊“瀏覽”,然后瀏覽到前面過程中創(chuàng)建的數(shù)據(jù)庫。如果按照步驟操作,該數(shù)據(jù)庫位于 c:\sqlmobile.sdf。 單擊“測試連接”,然后單擊“確定”以創(chuàng)建新的數(shù)據(jù)連接。 在“選擇您的數(shù)據(jù)連接”對話框中,單擊“下一步”。 如果此時出現(xiàn)對話框,要求您將數(shù)據(jù)文件復制到當前項目中,請單擊“是”。 在“保存連接字符串”窗口中,單擊“下一步”。 在“選擇您的數(shù)據(jù)庫對象”窗口中,選擇“表”,然后單擊“完成”。
選擇要顯示的數(shù)據(jù)
從“數(shù)據(jù)”菜單中,選擇“顯示數(shù)據(jù)源”。 將“MembershipData”表從“數(shù)據(jù)源”窗口拖動到“Form1 設計”窗口。將在 Form1 上創(chuàng)建數(shù)據(jù)網(wǎng)格,并自動提供列名稱。 右鍵單擊數(shù)據(jù)網(wǎng)格,然后單擊“屬性”。 在“屬性”窗口中,將“???#8221;值更改為“頂部”??梢酝ㄟ^單擊出現(xiàn)的圖形表示的頂部欄,或者在值字段中鍵入“頂部”來完成此操作。將會對數(shù)據(jù)網(wǎng)格進行移動并調整其大小以填充 Form1 的頂部。 在數(shù)據(jù)網(wǎng)格的右上角,單擊小箭頭。從顯示的菜單中,選擇“生成數(shù)據(jù)窗體”。 將“FlightData”表從“數(shù)據(jù)源”窗口拖動到“Form1 設計”窗口。將在 Form1 上創(chuàng)建數(shù)據(jù)網(wǎng)格,并自動提供列名稱。 您可以使用該數(shù)據(jù)網(wǎng)格的“屬性”設置將“???#8221;屬性設置為“底部”。
添加節(jié)點
在應用程序的代碼頁中,可添加包含數(shù)據(jù)庫文件的路徑和名稱的字符串變量、用于刪除數(shù)據(jù)庫文件(如果已存在)的代碼、用于創(chuàng)建與 SQL Server 發(fā)布的連接、同步數(shù)據(jù)和創(chuàng)建一個包含已發(fā)布數(shù)據(jù)的新本地數(shù)據(jù)庫的代碼。
添加代碼
在解決方案資源管理器中,右鍵單擊“Form1”,然后選擇“查看代碼”。 在代碼頁中,查找 Form1 的類定義。添加一個字符串變量,并賦值為 .sdf 文件的路徑和文件名。Visual Studio 在先前步驟中創(chuàng)建的數(shù)據(jù)源需要數(shù)據(jù)庫文件駐留在 \Program Files\ApplicationName 文件夾中,其中 ApplicationName 為應用程序的名稱。例如,如果您命名了新項目 SQLMobile,則應將字符串變量設置為 "\Program Files\SQLMobile\sqlmobile.sdf"。 類定義的前幾行應該與以下代碼類似:
[C#]
以下是引用片段:
public partial class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.MainMenu mainMenu1;
string filename = @"\Program Files\SQLMobile\sqlmobile.sdf";
public Form1()
{
InitializeComponent();
}
[Visual Basic]
以下是引用片段:
Public Class Form1
Dim filename As New String _
("\Program Files\SQLMobile\sqlmobile.sdf")
4. 如果當前存在數(shù)據(jù)庫文件,則將創(chuàng)建新方法將該數(shù)據(jù)庫文件刪除。這將確保應用程序在每次運行時加載最新的數(shù)據(jù)。此方法應該命名為 DeleteDB。此代碼應該與以下代碼類似:
[C#]
以下是引用片段:
private void DeleteDB()
{
if (System.IO.File.Exists(filename))
{
System.IO.File.Delete(filename);
}
}
[Visual Basic]
以下是引用片段:
Sub DeleteDB()
If System.IO.File.Exists(filename) Then
System.IO.File.Delete(filename)
End If
End Sub
5. 創(chuàng)建名為“Sync”的執(zhí)行同步的新方法。若要執(zhí)行此操作,您將使用從前面步驟的“新建發(fā)布向導”中復制的代碼。在粘貼代碼后,必須對代碼執(zhí)行兩項更改:
a.更改 SubscriberConnectionString 值,以便該值指向文件名變量中指定的正確路徑和文件名。
b.將 AddOption 值從 ExistingDatabase 更改為 CreateDatabase。
更改完成后,Sync 方法應如下所示:
[C#]
以下是引用片段:
private void Sync()
{
SqlCeReplication repl = new SqlCeReplication();
repl.InternetUrl = @"http:///sqlmobile/sqlcesa30.dll";
repl.Publisher = @"";
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());
}
}
[Visual Basic]
以下是引用片段:
Sub Sync()
Dim repl As New SqlCeReplication()
repl.InternetUrl = "http:///SQLMobile/sqlcesa30.dll"
repl.Publisher = ""
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 err as SqlCeException
MessageBox.Show(err.ToString)
end try
End Sub
6. 最后,在調用最新創(chuàng)建的兩個方法的 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);
}
[Visual Basic]
以下是引用片段:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DeleteDB()
Sync()
‘TODO: Delete this line of code.
Me.FlightDataTableAdapter.Fill(Me.SqlmobileDataSet.FlightData)
‘TODO: Delete this line of code ...
Me.MembershipDataTableAdapter.Fill(Me.SqlmobileDataSet.MembershipData)
End Sub
部署應用程序
從“調試”菜單中,選擇“啟動調試”。 如果此時顯示“部署”對話框,請選擇“Pocket PC 2003 SE 仿真程序”,然后單擊“部署”。 此時,將會在新窗口中打開該仿真程序。在首次將應用程序部署到該仿真程序時,將安裝 .NET Compact Framework 和 SQL Server Compact Edition。該過程可能需要幾分鐘的時間。當它們安裝完成后,將安裝您的應用程序并運行。 您的應用程序將加載并顯示這兩個數(shù)據(jù)網(wǎng)格。單擊“MembershipData”數(shù)據(jù)網(wǎng)格中的值時,會自動更新“FlightData”數(shù)據(jù)網(wǎng)格中的數(shù)據(jù)。 關閉該應用程序,并在 Visual Studio 的“調試”菜單上,單擊“停止調試”。