




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、分類號:分類號:tp311.52tp311.52 u u d d c c:d10621-408-(2007)d10621-408-(2007) 5826-05826-0密密 級:公級:公 開開 編編 號:號:20028011062002801106成成 都都 信信 息息 工工 程程 學學 院院學學 位位 論論 文文基于手機短信平臺聊天程序的設計與實現基于手機短信平臺聊天程序的設計與實現論文作者姓名:論文作者姓名:劉旭東劉旭東申請學位專業:申請學位專業:網絡工程網絡工程申請學位類別:申請學位類別:工學學士工學學士指指導導教教師師姓姓名名(職職稱稱):陶德元(教授)陶德元(教授)論文提交日期:論文
2、提交日期:20072007 年年 0606 月月 1 1 日日摘摘 要要本文介紹了在.net2005 平臺上,通過 pocket pc 模擬器,在 pc 機上模擬手機短信息的發送和接收過程。系統使用 sql server ce 和 sql server 2000數據庫來存儲數據,同時利用 ado.net 數據庫訪問技術和使用 vb.net 編程語言。在對遠程數據庫進行訪問時使用了 rda 的技術。系統通過引用 system.data.sqlserverce 組件在 pocket pc 2003 模擬器上創建本地 sql server ce 數據庫 accessmsg.sdf 和表 msginf
3、o,該表具有保存用戶 id 和信息的功能。通過在 pocket pc 寫入數據,能夠保存在本地 sql server ce 數據庫中。通過 rda 同步技術中的 pull 和 push 兩個操作將數據保存到在遠程數據庫中。該系統能較清晰的展示智能手機短信息通信原理因此達到設計的目的。關鍵詞關鍵詞 : : 智能手機 ;sql server ce ;ado.net the design and implementation of chatting program based on mobile platformabstractthe papers introduced the .net2005 p
4、latform, pocket pc simulator on the pc simulation of the cellular phone short message sending and receiving process. the system uses sql server ce and sql server 2000 database to store data the meanwhile using ado.net database access technology vb.net programming languages .in the remote database vi
5、sit the rda to use the technology.the system components by reference system.data.sqlserverce had to created local sql server ce database accessmsg.sdf and table msginfo in the pocket pc 2003 simulator .the table preservation user id and information functions .the pocket pc through the written data c
6、an be stored in local sql server ce databases and rda synchronization through the use of technology for the pull and push operation saved data to the remote database .the system can display clearer cell phone short message communication principle therefore achieve the purpose of the design . key wor
7、ds: smartphone; sql server ce; ado.net; 目目 錄錄1引言.11.1課題背景.11.2國內外研究現狀.11.3本課題研究意義.11.4本課題研究方法.21.4.1開發平臺 visual studio .net.21.4.2sql server ce 數據庫.21.4.3c/s 結構.32系統需求分析.42.1功能需求.42.2性能需求.42.3環境需求.52.4用戶界面需求.53系統主體設計.53.1主體設計思路.53.2設計結構.63.2.1系統功能模塊結構.73.2.2系統數據庫設計.84系統實現.94.1程序設計語言.94.2開發環境搭建.94.2.
8、1配置 sql server 2000 數據庫.94.2.2安裝及配置 sql server ce.94.3創建本地設備上的數據庫.104.4系統設計代碼.114.4.1本地數據庫訪問.114.4.2遠程數據訪問.155測試和結果.165.1測試.165.2結果.16結 論.17參考文獻.18致 謝.19聲 明.20第 1 頁 共 20 頁1 1引言引言1.11.1 課題背景課題背景移動智能設備,智能信息管理,多媒體信息交流正成為未來移動通信發展的方向和通信技術進步的潮流。無線移動設備結合了手機通信和 pda 功能更成為現代移動設備的發展方向。這種發展方向意味著無線通信業和 it 行業正在進入
9、融合和相互的創新。一種整合了手機通信平臺和 pda 平臺的代表現在潮流的移動電話正在普及和發展。人們將這種融合的產品統稱為智能手持設備(smart handheld device,簡寫為 shd)也稱為掌上智能手機。更多時候 shd 被賦予一個更為大家了解和接受的名字 smart phone(智能電話) 。智能手機包括娛樂和商務兩大功能,特別是其商務功能。智能移動信息終端提供了先進的集個人通信,個人信息管理,互聯網接入等一體化功能。其中 symbian,windows ce,plam,linux 是智能手機的四大操作系統,我們目前最常使用的 windows ce主要分為 pocket pc 和
10、 smart phone 系列兩種。通常 pocket pc 并不是單一的手機操作系統,但是可以通過改造和整合后,可用與多款手機如大顯cu9288,多普達 m700,廈新 m696。在提到智能手機的操作系統,就不得不涉及到智能手機的開發平臺。目前,智能手機的開發平臺主要有 java,brew 和.net。其中.net 框架是一個用于生成,部署,運行 xml web 服務及其他應用程序的環境。它包含三個主要部分:公共語言運行庫,框架類和 asp.net。在.net 中有一套編程接口,用于開發者對智能手機和 pda 的開發。.net 技術是為人所用,并不是強制個人適應起計算機的限制。利用.net,
11、無論什么時候,什么地方都能對你設備上的信息進行管理,對遠程的數據進行訪問。1.21.2 國內外研究現狀國內外研究現狀通過對文獻和資料的整理查閱,國內對 pocket pc 的研究和實踐正是起步時期,但成績較為顯著。很多國內智能手機開發商都在利用相關技術對該系統進行開發并將此運用到實踐和商業環境中。在國外已經發展的相當成熟,也將此技術更多的使用在 3g 通信中,更能體現出智能手機的人性化,智能話,開放化。1.31.3 本課題研究意義本課題研究意義智能手機除了具備 pda 的大部分功能外,其中最關鍵的功能還在于自身的通信能力,特別是現在短信息成為一種成熟的通信機制的環境下,就顯的更為引人關注(文字
12、短信,彩信)智能手機為用戶提供可足夠大的屏幕尺寸和帶寬,可以從容的面對多媒體信息的發送和接收。融合了3c(computer,communication,consumer)的智能手機必將成為未來手機發展的第 2 頁 共 20 頁新方向。隨著計算機及其信息技術不斷成熟與發展,人們的消費需求和消費心理都發生了巨大的變化,人們已經不再一味地追求 pc 的大容量和高速度,而是轉而設法將計算機應用于日常工作,生活和學習的方方面面,追求個性化的產品和消費。一臺智能設備(smart device)從本質上將仍然是一臺計算機,因為它具有一般計算機的典型特征,它仍然由硬件和軟件組成,在智能設備內部既有 cpu,存
13、儲器,系統時鐘和外部接口等,也有操作系統和應用軟件,和一般的通用計算機或 pc 相比,它更像一臺專用計算機,智能設備一般都是為了特定的目的而設計的,一般具有特定的功能,因為它的速度和容量只滿足設備的使用要求,遠低于通常的 pc。但是,智能設備種類繁多,功能和性能千變萬化,所以它對軟硬件的要求也就更加復雜和多樣,所以智能設備不僅要求其硬件集成度高,體積小,功耗低,也要求軟件穩定性高,靈活性好,實時性高等。對于智能設備的硬件來講,cpu 是其核心,cpu 的功能和性能在很大程度上決定了設備的功能和性能;對于只能設備的軟件來講,操作系統是其核心,操作系統的功能和性能很大程度上決定了設備的功能和性能。
14、1.41.4 本課題研究方法本課題研究方法.1 開發平臺開發平臺 visualvisual studiostudio .net.netvisual studio .net 的 smart device programmability(sdp)功能(以前稱作 smart device extensionssde)可以幫助開發人員利用 microsoft net compact framework 編寫移動應用程序,從而在連接或短開外部設備的情況下啟用分布式的移動計算。使用.net compact framework 中提供的大量類庫,開發者編寫程序的速度得到很大的提高,使用 vi
15、sual studio .net2005,開發者可以在桌面系統中用到的相同工具和技術來開發 pocket pc 2003(具備相應的sdk)以及 smart phone2003。它將安裝.net compact framework,這是專門為資源有限的設備設計的。開發者可以使用 c#語言或者 visual basic.net 語言來開發移動和嵌入式設備。除此之外它還能很好的應用于 xml web service 或ado.net 的應用程序。1.4.2sql server ce 數據庫數據庫microsoft sql server 2000 windows ce edition(sql ser
16、ver ce)2.0 版是精簡的數據庫,microsoft sql server 擴展到基于 windows ce 的移動設備,并將開發者的快速應用程序開發提供一個一致的編程模型。sql server ce 不同于 windows ce 操作系統本身的屬性數據庫,它是一個真正意義上的關系數據庫,它具有強大的數據存儲功能,優化查詢處理器,以及可靠,可伸縮的連接能力。sql server ce 的引擎提供了關系型數據庫的基本功能。遠程數據訪問和合并復制,確保 sql server 數據庫中的數據不僅可以可靠的提交給用戶,第 3 頁 共 20 頁而且能夠離線修改并在以后的時間內與服務器進行數據同步。
17、sql server ce2.0 還包括新的特性。使用 sde 處理數據與通過 embedded visual basic 處理數據的差別很大。如果采用 embedded visual basic,可以使用兩種類型的數據庫pocket access 和 sqlce。許多的開發者選擇使用 pocket access,因為它容易實現,而且與 microsoft access 相集成。而 sde 只支持 sqlce 在 embedded visual basic 中,你具有 adoce。sde 提供 ado.net。sql server 遠程數據訪問:遠程數據訪問(rda)為 pocket pc 應
18、用程序提供了功能強大而簡單的方法,來訪問位于遠程的 sql server 2000 或者 sql server 7.0 數據庫中的 sql server 數據。不論 pocket pc 是連續還是間歇地連接到 sql server 系統,均可使用 rda。應用程序以兩種方式使用 rda:一種是應用程序提交數據操作語言(dml)語句,該語句被轉交到 sql server 服務器上執行。另一種是應用程序提供返回查詢結果集的 sql 查詢語句。查詢結果集被返回給 pocket pc 設備,并以數據庫表的形式存儲在 sql server ce 數據庫里。rda 能跟蹤 pocket pc 應用程序所做
19、的所有更改。rda 使用 microsoft internet 信息服務(iis)的身份驗證,授權和加密服務。1.4.3c/s 結構結構c/s (client/server)結構,即大家熟知的客戶機和服務器結構。它是軟件系統體系結構,通過它可以充分利用兩端硬件環境的優勢,將任務合理分配到 client 端和 server 端來實現,降低了系統的通訊開銷。目前大多數應用軟件系統都是 client/server 形式的兩層結構,由于現在的軟件應用系統正在向分布式的 web 應用發展,web 和 client/server 應用都可以進行同樣的業務處理,應用不同的模塊共享邏輯組件;因此,內部的和外部
20、的用戶都可以訪問新的和現有的應用系統,通過現有應用系統中的邏輯可以擴展出新的應用系統。這也就是目前應用系統的發展方向。傳統的 cs 體系結構雖然采用的是開放模式,但這只是系統開發一級的開放性,在特定的應用中無論是 client 端,還是server 端都還需要特定的軟件支持。由于沒能提供用戶真正期望的開放環境,c/s 結構的軟件需要針對不同的操作系統系統開發不同版本的軟件, 加之產品的更新換代十分快,已經很難適應百臺電腦以上局域網用戶同時使用。而且代價高,效率低。第 4 頁 共 20 頁2 2系統需求分析系統需求分析2.12.1 功能需求功能需求綜合運用所學知識開發一種基于 pc 機的手機短信
21、通信系統,側重在于模擬手機短信通信的過程。通過在客戶端輸入信息能夠訪問本地數據庫,即在本地數據庫 sqlce 上能查看信息;通過 rda 的技術,執行 pull 操作(從遠程數據庫服務器接受數據)和 push 操作(向遠程數據庫服務器發送信息)訪問遠程數據庫。客戶端即模擬器應用功能需求:對數據和信息的添加,刪除功能:完成對用戶 id,發送和接收信息的添加,刪除。對信息的發送和接收功能:完成對信息的發送和接收,訪問本地數據庫和遠程數據庫。用戶可以在 pocket pc 完成和手機上同樣的操作,向 pocket pc 中輸入接收方 id 和信息,通過 rda 技術將用戶的信息發送到遠程服務器上,同
22、樣也可以從遠程服務器上接收信息。pocket pc 上存儲數據實際上是對本地數據庫 sqlce 的操作,通過按鈕控件把相關的信息存儲到本地數據庫中,用戶 id,信息,用戶名,同樣也可以刪除本地數據庫里的信息。pocket pc 對遠程數據庫的訪問需要使用 rda 的同步技術,運用 pull 和push 操作分別從遠程的服務器接收數據和向遠程服務器發送數據。服務器端即 sql server 2000 數據庫的功能需求:保存和接收用戶 id,用戶名,信息。為方便開發者可以使用 sql server 查詢語言,查詢數據庫中保存的數據,可通過使用 sql 語句完成對遠程數據庫的操作。該功能可以方便開發
23、者修改數據庫中的數據,使遠程數據庫擁有更大的拓展性。通過完善遠程數據庫的存儲能力從而達到對 pocket pc 離線開發的更大功能。2.22.2 性能需求性能需求該設計最大存儲容量為用戶存儲容量和信息存儲容量。用戶存儲容量中包含了用戶 id(即手機號碼)和姓名,其容量允許用戶隨時添加和刪除存儲信息,但用戶存儲容量最高為 50 個字符,信息存儲容量為 100 個字符。該設計由于是在 pc 機上模擬 ppc 通信,其運行的時間受其搭建的系統平臺環境的影響(主要是開發機的硬件環境影響)。一般從程序調試運行到模擬器部署成功要花 2 至 3 分鐘時間。第 5 頁 共 20 頁安全性方面由于系統平臺搭建時
24、均采用默認值,因此在使用該系統時不會存在使用過程中的保密限制。任何用戶只要在系統正常情況下都可使用。當程序運行中同時要考慮網絡環境的配置。如果網絡出現問題,pocket pc可以正常訪問 sqlce 本地數據庫,而暫時不能訪問 sql server 2000 遠程數據庫,信息將保存暫時保存在 sqlce 本地數據庫上。在 rda 訪問遠程數據庫中是一種樂觀的同步訪問方式,但當發生沖突或錯誤的時候,需要開發者手動維護數據完整性。在此情況下可用合并復制的技術完成對設備的同步訪問。2.32.3 環境需求環境需求該設計完成需要硬件環境和軟件環境的支持。(1) 硬件環境:主機上采用一般的個人 pc,其硬
25、件核心在于處理器和內存,硬盤有效空間在 4g 以上。(2) 軟件環境:操作系統為 windows server 2003 ;在網絡環境上另需安裝 iis 信息服務器;數據庫為 sql server 2000 sp4 和 sql server 2000 windows ce edition 2.0(sql server ce),開發工具為 visual studio.net2005。2.42.4 用戶界面需求用戶界面需求為使該設計可行,可靠,其界面設計要求簡單,方便,且具有人性化的操作界面,系統功能可以良好的功能按鈕相結合。使用 send,accept,添加,刪除四個按鈕控制相關的功能;text
26、box 控件用來分別顯示信息和用戶 id,用戶名。整個界面簡單,醒目,且有效。3 3系統主體設計系統主體設計3.13.1 主體設計思路主體設計思路本系統主要使用 sql server ce 數據庫和 sql server 2000 數據庫,通過引用 system.data.sqlserverce 組件創建 sqlconnection 實例利用代碼在pocket pc 2003 模擬器上創建本地數據庫表:msginfo。對遠程 sql server 2000 數據庫的訪問通過 rda 技術需要 system.data.sqlclient 的引用完成 pull操作和 push 操作。在對 pock
27、et pc 上存儲數據實際上是對本地數據庫的操作,通過代碼在編輯環境中創建出本地數據庫 accessmsg.sdf,該數據庫是個精簡版的 sql server 數據庫,同樣是個關系型數據庫,同時通過代碼在 sqlce 中創建表msginfo,表中列屬性為用戶 id(sendid,acceptid)和 message,分別用來存儲用戶信息和發送接收的信息。整個系統的開發除了建立數據庫外,在實現功能代碼上要創建一個第 6 頁 共 20 頁sqlcecf 的實例。使數據庫能夠支撐整個系統功能實現。在 pocket pc 上其界面設計思路是盡量簡單,但能滿足系統需求。控件上的設計簡潔,明了。使模擬器和
28、真實的手機操作界面相似,到達界面設計的需求。在發送端的模擬器上顯示接收端的 id 和 message,在接收端的模擬器上顯示發送端的 id 和同樣的 message,使模擬器功能上和真實手機一致。在實現對遠程數據庫 sql server 2000 訪問時主要采用 rda 的同步技術。運用 pull 和 push 操作分別從遠程的服務器接收數據和向遠程服務器發送數據。在運用 rda 時由于是一種樂觀的訪問方式,而沒有考慮系統環境存在的沖突,當訪問不成功時,數據會暫時保存在本地數據庫中,其實質也是對本地數據庫的操作。當系統環境通暢后再一次對數據進行 pull 和 push 操作就能訪問遠程數據庫。
29、系統整體運行模式:通過一臺 pocket pc 向另一臺 pocket pc 傳送信息,首先發送方將信息寫入 pocket pc 中即完成對發送方本地數據庫的操作,在通過 push 操作向遠程數據庫中發送數據,接收方再通過 pull 操作從遠程數據庫接受數據,此時信息將保存在接收方本地數據庫中,通過相應的查詢操作完成對接收方本地數據庫的訪問。同時需要考慮此傳輸過程是一種樂觀的傳輸過程。3.23.2 設計結構設計結構系統設計結構圖和 rda 功能結構圖如圖 1,圖 2 所示智能通訊設備智能通訊設備sql server cesql server cesql server 2000圖 1 系統結構圖
30、 第 7 頁 共 20 頁 圖 2 rda 功能系統結構圖3.2.1系統功能模塊結構系統功能模塊結構系統總體功能模塊如圖 3 所示:短信通信系統 圖 3 系統功能模塊(1)發送方包含了接收方的 id 號和待發信息,接收方的 id 號以列表的方式展現在發送方。(2)接收方包含了發送方的 id 號和接收信息(即發送方發出的信息) 。(3)發送方通過模擬器軟件盤寫入信息,通過添加刪除功能完成信息寫入與發送。(4)通過 rda 技術可以訪問在遠程 sql server 2000 數據庫中表內信息。發送方接收方信 息接收方 id發送方 id信 息第 8 頁 共 20 頁3.2.2系統數據庫設計系統數據庫
31、設計在 sql server 2000 企業管理器中創建數據庫 mysqlce 和表 msginfo1(如表 1)所示 表 1 數據庫表 msginfo1使用 sqlce 通過代碼在智能設備 pocket pc 2003 上創建數據庫accessmsg.sdf 和表 ppc1(如表 2,圖 4 所示) 表 2 本地數據庫表 ppc1圖 4 pocket pc 上創建的本地數據庫列 名類 型長 度特 性sendidnvarchar50not nullacceptidnvarchar50not nullmessagenvarchar100 nulldatetimetime8not null列 名類
32、 型長 度特 性sendidnvarchar50not nullaccepteridnvarchar50not nullmessagenvarchar100null第 9 頁 共 20 頁4 4系統實現系統實現4.14.1 程序設計語言程序設計語言visual basic.net 是新一代的 visual basic 語言,它是一種簡便快捷地創建.net 應用程序(包括 xml web services 和 asp.net.web 應用程序)的語言 visual basic.net 具有許多新的功能和改進功能(如繼承,接口和重載),這使 visual basic.net 成為功能強大的面向對象
33、的編程語言,其他新的語言功能包括自由線程處理和結構化異常處理。visual basic.net 還完全集成了.net framework 和公共語言運行苦,.net framework 和公共語言運行庫,共同提供語言互操作性,垃圾回收,增強的安全符合性和改進的版本支持。visual basic 開發者現在可以使用顯示多線程處理創建多線程可伸縮的應用程序。visual basic.net 中其他的新語言功能包括結構化異常處理,自定義屬性和符合公共語言規范(cls)。cls 是對諸如數據類型之類的事物以及對象的公開和交互操作方式進行標準化的一組規則。visual basic.net 添加了幾項利用
34、 cls 優勢的功能,任何符合 cls 的語言都可以使用在 visual basic.net 中創建的類,對象和組件。visual basic 用戶可以從其他符合 cls 的編程語言訪問類,組件和對象,而不用擔心諸如數據類型之類的語言特定的差異,visual basic.net 程序使用的cls 功能包括程序集,命名空間和屬性。visual basic.net 支持許多新的或改進的面向對象語言功能,如重載,繼承,overrides 關鍵字,接口,共享成員和構造函數,還包括結構化異常處理,委托以及幾個新的數據類型。4.24.2 開發環境搭建開發環境搭建4.2.1配置配置 sql server 2
35、000 數據庫數據庫安裝使用設備上的移動數據庫,首先要安裝 sql server,因為使用 sql server 可以進行遠程數據訪問(rda)和合并復制兩種方式的同步數據。rda 訪問功能支持與 sql server7.0(和更高版本)數據庫的連接,合并復制則要求后端必須是 sql server 2000。這里選擇 sql server 2000 安裝,同時為下步安裝 sql server ce 做準備,要先安裝 sql server 2000 升級補丁包 sql server packsp4。在選擇驗證模式時選擇混合模式。4.2.2安裝及配置安裝及配置 sql server ce下載最新自
36、解壓包 sqlce20sql2ksp4 和 sqlce2.0 安裝文件,即可將 sql server ce(ssce)數據庫安裝在開發用的 pc 機上(即服務器名 9pyac859fd7pxwy)。如果僅僅創建本地數據庫,則選擇(development tools)安裝即可;要使用sql server ce 的遠程數據訪問(rda)和復制技術,除了安裝以上外,還需要第 10 頁 共 20 頁選擇(server tools)安裝。安裝 sql server ce 2.0 服務器工具程序,通過在運行 iis 的計算機上運行 sql server ce 服務器工具安裝程序之一,自動安裝 sql se
37、rver ce 連接管理實用工具和 sql server ce 虛擬目錄創建向導。安裝結束時,可以轉到“開始”菜單,指向“程序” ,單擊“microsoft sql server ce2.0”然后單擊“配置 iis 中的連接支持” 。在 sql server ce 管理實用工具的右窗格中雙擊“創建虛擬目錄”向導。將虛擬目錄名為“sqlce”,將文件 sscesa20.dll 拷貝到該目錄下(在這一步中要先在你設定的目錄下建立一個物理文件夾并將該文件夾設置為共享文件夾,并修改該文件夾的使用權限,當在創建虛擬目錄時文件夾路徑會自動映射到該物理文件夾下) ,運行 cmd.exe,轉到c:inetpu
38、bwwwrootsqlce 目錄下,然后鍵入“regsvr32 sscesa20.dll”將com 組件注冊到 dll 中,在 pocket pc 2003 模擬器的地址欄輸入http:/9pyac859fd7pxwy/sqlce/sscesa20.dll 測試連接到服務器9pyac859fd7pxwy 是否成功。如果數據庫安裝正確,將得到一個包含 sql server ce agent 的 web 頁面。需要注意一點:在配置環境時盡量先不要對整個操作系統安裝殺毒軟件和其他的防護性軟件,以免安裝快照文件夾時失敗,并提示開發者找不到網絡路徑。在本設計中由于要訪問遠程數據庫,因此不僅需要運用 rd
39、a 方法來實現sql server 數據庫與本地 sql server ce 數據庫之間同步數據操作,還需要安裝(server tools)才能訪問遠程數據庫。4.34.3 創建本地設備上的數據庫創建本地設備上的數據庫創建本地數據庫 accessmsg.sdf 和表 ppc1 代碼如下:創建sql server ce 數據庫 private sub createmydb() dim boolcreatenewdatabase as boolean = true dim slocaldatabasename as string dim apppath as string 返回pocket pc應
40、用程序路徑 apppath = system.io.path.getdirectoryname(reflection.assembly. _ getexecutingassembly().getname.codebase.tostring() slocaldatabasename = apppath & accessmsg.sdf 檢查數據庫文件是否存在 if system.io.file.exists(slocaldatabasename) then boolcreatenewdatabase = false end ifif (system.io.file.exists(slocaldat
41、abasename) then第 11 頁 共 20 頁 system.io.file.delete(slocaldatabasename) end if dim eng as data.sqlserverce.sqlceengine = new data.sqlserverce.sqlceengine(data source = & slocaldatabasename) eng.createdatabase() 連接sql server ce 數據庫 dim localconnection as data.sqlserverce.sqlceconnection localconnectio
42、n = new data.sqlserverce.sqlceconnection(data source = & slocaldatabasename) localconnection.open()創建數據庫表 dim buildtables as system.text.stringbuilder = new system.text.stringbuilder buildtables.append(create table ppc1() buildtables.append(senderid nvarchar(50) null) buildtables.append(,aceepterid
43、nvarchar(50) null) buildtables.append( ,message nvarchar(100) null) buildtables.append()dim cmdcreatetable as data.sqlserverce.sqlcecommand cmdcreatetable = new data.sqlserverce.sqlcecommand(buildtables.tostring(), localconnection) cmdcreatetable.commandtype = commandtype.text cmdcreatetable.execute
44、nonquery() localconnection.close() end sub4.44.4 系統設計代碼系統設計代碼4.4.1本地數據庫訪問本地數據庫訪問本地數據訪問如圖 4-1 所示通過對本地數據庫的訪問可以知道本地數據庫上保存的相關信息。可以通過 sql server ce 2.0 的查詢分析器 isqlw 查詢信息,如圖 5 所示圖 5 isqlw 查詢分析器第 12 頁 共 20 頁本地數據庫訪問界面,如圖 6 所示圖 6 發送和接收過程界面通過向數據表中插入數據的公共過程可更改數據庫中的數據:向數據表插入數據的公共過程 public sub runnonquery(byval
45、sqlcommandtext as string, byval localdatasource as string) dim localconnection as data.sqlserverce.sqlceconnection localconnection = new data.sqlserverce.sqlceconnection(localdatasource) dim cmdcreatetable as data.sqlserverce.sqlcecommand localconnection.open() cmdcreatetable = new data.sqlserverce.
46、sqlcecommand(sqlcommandtext, localconnection) cmdcreatetable.commandtype = commandtype.text cmdcreatetable.executenonquery() localconnection.close() cmdcreatetable.dispose() localconnection.dispose() end sub該段代碼實現當數據差入后使用 datareader 和 dataset 進行讀取數據庫數據: 使用datareader訪問數據 public function getdata(byval
47、 localdatasource as string) as data.sqlserverce.sqlcedatareader try dim localconnection as data.sqlserverce.sqlceconnection localconnection = new data.sqlserverce.sqlceconnection(localdatasource) 獲取數據 dim dr as data.sqlserverce.sqlcedatareader dim cmdgetdata as data.sqlserverce.sqlcecommand第 13 頁 共
48、20 頁 localconnection.open() cmdgetdata = new data.sqlserverce.sqlcecommand(select * from ppc1, localconnection) cmdgetdata.commandtype = commandtype.text dr = cmdgetdata.executereader(data.commandbehavior.closeconnection) return dr catch ex as data.sqlserverce.sqlceexception messagebox.show(ex.messa
49、ge) end try end function 使用dataset訪問數據 public function getdataset(byval localdatasource as string) as data.dataset try dim localconnection as data.sqlserverce.sqlceconnection localconnection = new data.sqlserverce.sqlceconnection(localdatasource) 獲取數據 dim da as data.sqlserverce.sqlcedataadapter = ne
50、w data.sqlserverce.sqlcedataadapter dim ds as data.dataset = new data.dataset da.selectcommand = new data.sqlserverce.sqlcecommand(select *from ppc1, localconnection) da.fill(ds) return ds catch ex as data.sqlserverce.sqlceexception messagebox.show(ex.message) end try end function設計控件代碼的過程包含了在.net 控
51、件欄中拖入設計窗體控件,在后臺寫入控件觸發事件代碼,如圖 7 所示:第 14 頁 共 20 頁圖 7 界面控件設計界面控件按鈕功能實現代碼:private sub btok_click(byval sender as system.object, byval e as system.eventargs) handles btok.click dim slocaldatabasename as string dim apppath as string dim boolcreatenewdatabase as boolean = true apppath = system.io.path.getd
52、irectoryname(reflection.assembly. _ getexecutingassembly().getname.codebase.tostring()slocaldatabasename = apppath & accessmsg.sdfif system.io.file.exists(slocaldatabasename) then boolcreatenewdatabase = false end if dim connwindce as data.sqlserverce.sqlceconnection = new data.sqlserverce.sqlceconn
53、ection(data source = & slocaldatabasename) dim name as string = me.txtname.text dim number as string = me.txtnum.text connwindce.open() dim cmddata as data.sqlserverce.sqlcecommand = new data.sqlserverce.sqlcecommand(insert into aceepter (id,name,type) values( & name & , & number & ,), connwindce)cm
54、ddata.commandtype = data.commandtype.text cmddata.executenonquery()connwindce.close()loaddata()end if第 15 頁 共 20 頁4.4.2遠程數據訪問遠程數據訪問rda 為基于.net compact framework 的 pocket pc 應用程序提供了與遠程sql server 數據庫實例進行數據同步的簡單方法。rda 適用于簡單的,不需要全功能的合并復制功能的數據同步,使用 rda 不需要配置 sql server 的復制器和發布器。使用 rda 技術中的 pull 操作向遠程數據庫中
55、的服務器接收數據。在pocket pc 中完成對信息接收的操作:public class rdapublic shared sub pull() dim _strremoteconnect as string _strremoteconnect = provider = sqloledb;data source =.;initial catalog = msginfo;integrated security=sspi;dim apppath as string dim _strlocalconnect as string apppath = system.io.path.getdirector
56、yname(reflection.assembly.getexecutingassembly().getname().codebase.tostring() _strlocalconnect = data source= & apppath & accessmsg.sdf const _strinterneturl as string = /sqlce/sscesa20.dlltry dim rda as data.sqlserverce.sqlceremotedataaccess = new data.sqlserverce.sqlceremotedataacc
57、ess() rda.internetlogin = string.empty rda.internetpassword = string.empty rda.interneturl = _strinterneturl rda.localconnectionstring = _strlocalconnect rda.pull(localmsginfo, select * from msginfo, _strremoteconnect, system.data.sqlserverce.rdatrackoption.trackingonwithindexes) catch ex as data.sq
58、lserverce.sqlceexception messagebox.show(ex.message) end try end sub使用 rda 技術中的 push 操作向遠程數據庫中的服務器發送數據。在pocket pc 中完成對信息發送的操作: public shared sub push() dim _strremoteconnect as string _strremoteconnect = provider = sqloledb;data source =.;initial catalog = msginfo1;dim apppath as string dim _strloca
59、lconnect as string apppath = 第 16 頁 共 20 頁system.io.path.getdirectoryname(reflection.assembly.getexecutingassembly().getname().codebase.tostring() _strlocalconnect = data source= & apppath & accessmsg.sdf const _strinterneturl as string = /sqlce/sscesa20.dll dim rda as data.sqlserverc
60、e.sqlceremotedataaccess = new data.sqlserverce.sqlceremotedataaccess() try with rda .internetlogin = string.empty .internetpassword = string.empty .interneturl = _strinterneturl .localconnectionstring = _strlocalconnect .push(localmsginfo1, _strremoteconnect, system.data.sqlserverce.rdabatchoption.b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年農業生物技術在種業中的生物技術產品風險評估與管理報告
- 抽象雕塑兒童教案課件
- 2025年農業生物技術在農業生物抗草害性品種選育中的應用:基因編輯與抗草害性突破報告
- 第07講 基本體投影及截交線(課件)-2026年高考機械制圖一輪復習講練測
- 教育技術在職業發展指導中的實踐應用
- 商業教育機構的特色安全文化建設
- 胃ca術后護理查房講課件
- 2024年度浙江省二級建造師之二建市政工程實務全真模擬考試試卷B卷含答案
- 江蘇大學《0-3歲嬰兒保育與教育》2023-2024學年第二學期期末試卷
- 阜新高等專科學校《市場學導論》2023-2024學年第二學期期末試卷
- 2025年高考安徽卷物理真題(解析版)
- 暑假安全家長會課件
- 2025年中小學生安全知識競賽試題及答案
- 大模型應用大模型提示詞
- 新能源充電樁建設項目可行性研究報告(案例新版)
- 貴州國企招聘2025貴州省糧食儲備集團有限公司招聘76人筆試參考題庫附帶答案詳解析
- 電學計量員(高級)職業技能鑒定考試題(附答案)
- T/CHC 1007-2023硫酸軟骨素鈉
- 沼氣工程系統安全操作管理規程(新編版)
- 成人交通安全教育
- 廣東肇慶航空職業學院《電氣控制技術》2023-2024學年第二學期期末試卷
評論
0/150
提交評論