基于手機(jī)短信平臺(tái)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于手機(jī)短信平臺(tái)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于手機(jī)短信平臺(tái)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于手機(jī)短信平臺(tái)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于手機(jī)短信平臺(tái)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Anhui Vocactional & Technical College of Industry & Trade畢畢 業(yè)業(yè) 論論 文文基于手機(jī)短信平臺(tái)聊天程序的設(shè)基于手機(jī)短信平臺(tái)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)計(jì)與實(shí)現(xiàn)The design and implementation of chat program based on mobile phone SMS platform 所在系院: 計(jì)算機(jī)系 專業(yè)班級(jí): 計(jì)算機(jī)數(shù)字媒體班 學(xué)生學(xué)號(hào): 2014030320 學(xué)生姓名: 余率 指導(dǎo)教師: 商杰 年 月 日Anhui Vocactional & Technical College

2、 of Industry & Trade畢畢業(yè)業(yè)設(shè)設(shè)計(jì)計(jì)說說明明書書基于手機(jī)短信平臺(tái)聊天程序的設(shè)基于手機(jī)短信平臺(tái)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)計(jì)與實(shí)現(xiàn)The design and implementation of chat program based on mobile phone SMS platform 所在系院: 計(jì)算機(jī)系 專業(yè)班級(jí): 計(jì)算機(jī)數(shù)字媒體班 學(xué)生學(xué)號(hào): 2014030320 學(xué)生姓名: 余率 指導(dǎo)教師: 商杰 年 月 日基于手機(jī)短信平臺(tái)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)基于手機(jī)短信平臺(tái)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)摘要摘要 本文介紹了在.NET2005 平臺(tái)上,通過 Pocket PC 模擬器,在

3、PC 機(jī)上模擬手機(jī)短信息的發(fā)送和接收過程。系統(tǒng)使用 SQL Server CE 和 SQL Server 2000 數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù),同時(shí)利用 ADO.NET 數(shù)據(jù)庫訪問技術(shù)和使用 VB.NET 編程語言。在對(duì)遠(yuǎn)程數(shù)據(jù)庫進(jìn)行訪問時(shí)使用了 RDA 的技術(shù)。系統(tǒng)通過引用 System.Data.SqlServerCe 組件在 Pocket PC 2003 模擬器上創(chuàng)建本地 SQL Server CE 數(shù)據(jù)庫 AccessMsg.sdf 和表 MsgInfo,該表具有保存用戶 ID 和信息的功能。通過在 Pocket PC 寫入數(shù)據(jù),能夠保存在本地 SQL Server CE 數(shù)據(jù)庫中。通過 RDA

4、 同步技術(shù)中的 PULL 和 PUSH 兩個(gè)操作將數(shù)據(jù)保存到在遠(yuǎn)程數(shù)據(jù)庫中。該系統(tǒng)能較清晰的展示智能手機(jī)短信息通信原理因此達(dá)到設(shè)計(jì)的目的。關(guān)鍵詞關(guān)鍵詞 : : 智能手機(jī) ;SQL Server CE ;ADO.NET The design and implementation of chatting program based on mobile platform Abstract :The papers introduced the .NET2005 platform, Pocket PC simulator on the PC simulation of the cellular phon

5、e 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 visit the RDA to use the technology.The system components by reference S

6、ystem.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 can be stored in local SQL Server CE databases and RDA synchronization

7、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 words: Smartphone; SQL Server CE; ADO.NET; 目目 錄錄 摘要 Abstract 引言11 1.1課題背景

8、.11.2國(guó)內(nèi)外研究現(xiàn)狀.11.3本課題研究方法.11.3.1 開發(fā)平臺(tái) Visual Studio .NET.21.3.2SQL Server CE 數(shù)據(jù)庫.21.3.3C/S結(jié)構(gòu).3 第一章 系統(tǒng)需求分析.41.1功能需求.41.2性能需求.41.3環(huán)境需求.51.4用戶界面需求.5 第二章第二章 系統(tǒng)主體設(shè)計(jì).52.1主體設(shè)計(jì)思路.52.2設(shè)計(jì)結(jié)構(gòu).62.2.1系統(tǒng)功能模塊結(jié)構(gòu).72.2.2系統(tǒng)數(shù)據(jù)庫設(shè)計(jì).8 第三章第三章 系統(tǒng)實(shí)現(xiàn).9 3.1程序設(shè)計(jì)語言.9 3.2開發(fā)環(huán)境搭建.932.1配置SQL Server 2000數(shù)據(jù)庫.93.2.2安裝及配置SQL Server CE.9 3

9、.3創(chuàng)建本地設(shè)備上的數(shù)據(jù)庫.10 3.4系統(tǒng)設(shè)計(jì)代碼.113.3.1本地?cái)?shù)據(jù)庫訪問.113.3.2遠(yuǎn)程數(shù)據(jù)訪問.15 第四章第四章 測(cè)試和結(jié)果.16 4.1測(cè)試.16 4.2結(jié)果.17結(jié)論.18致謝.19參考文獻(xiàn).20第 0 頁 共 20 頁引言引言1.1 課題背景課題背景移動(dòng)智能設(shè)備,智能信息管理,多媒體信息交流正成為未來移動(dòng)通信發(fā)展的方向和通信技術(shù)進(jìn)步的潮流。無線移動(dòng)設(shè)備結(jié)合了手機(jī)通信和 PDA 功能更成為現(xiàn)代移動(dòng)設(shè)備的發(fā)展方向。這種發(fā)展方向意味著無線通信業(yè)和 IT 行業(yè)正在進(jìn)入融合和相互的創(chuàng)新。一種整合了手機(jī)通信平臺(tái)和 PDA 平臺(tái)的代表現(xiàn)在潮流的移動(dòng)電話正在普及和發(fā)展。人們將這種融合的

10、產(chǎn)品統(tǒng)稱為智能手持設(shè)備(Smart Handheld Device,簡(jiǎn)寫為 SHD)也稱為掌上智能手機(jī)。更多時(shí)候 SHD 被賦予一個(gè)更為大家了解和接受的名字 Smart Phone(智能電話) 。智能手機(jī)包括娛樂和商務(wù)兩大功能,特別是其商務(wù)功能。智能移動(dòng)信息終端提供了先進(jìn)的集個(gè)人通信,個(gè)人信息管理,互聯(lián)網(wǎng)接入等一體化功能。其中 Symbian,Windows CE,Plam,Linux 是智能手機(jī)的四大操作系統(tǒng),我們目前最常使用的 Windows CE主要分為 Pocket PC 和 Smart Phone 系列兩種。通常 Pocket PC 并不是單一的手機(jī)操作系統(tǒng),但是可以通過改造和整合后

11、,可用與多款手機(jī)如大顯CU9288,多普達(dá) M700,廈新 M696。在提到智能手機(jī)的操作系統(tǒng),就不得不涉及到智能手機(jī)的開發(fā)平臺(tái)。目前,智能手機(jī)的開發(fā)平臺(tái)主要有 JAVA,BREW 和.NET。其中.NET 框架是一個(gè)用于生成,部署,運(yùn)行 XML Web 服務(wù)及其他應(yīng)用程序的環(huán)境。它包含三個(gè)主要部分:公共語言運(yùn)行庫,框架類和 ASP.NET。在.NET 中有一套編程接口,用于開發(fā)者對(duì)智能手機(jī)和 PDA 的開發(fā)。.NET 技術(shù)是為人所用,并不是強(qiáng)制個(gè)人適應(yīng)起計(jì)算機(jī)的限制。利用.NET,無論什么時(shí)候,什么地方都能對(duì)你設(shè)備上的信息進(jìn)行管理,對(duì)遠(yuǎn)程的數(shù)據(jù)進(jìn)行訪問。1.2 國(guó)內(nèi)外研究現(xiàn)狀國(guó)內(nèi)外研究現(xiàn)狀通

12、過對(duì)文獻(xiàn)和資料的整理查閱,國(guó)內(nèi)對(duì) Pocket PC 的研究和實(shí)踐正是起步時(shí)期,但成績(jī)較為顯著。很多國(guó)內(nèi)智能手機(jī)開發(fā)商都在利用相關(guān)技術(shù)對(duì)該系統(tǒng)進(jìn)行開發(fā)并將此運(yùn)用到實(shí)踐和商業(yè)環(huán)境中。在國(guó)外已經(jīng)發(fā)展的相當(dāng)成熟,也將此技術(shù)更多的使用在 3G 通信中,更能體現(xiàn)出智能手機(jī)的人性化,智能話,開放化。1.3 本課題研究方法本課題研究方法.1 開發(fā)平臺(tái)開發(fā)平臺(tái) VisualVisual StudioStudio .NET.NETVisual Studio .NET 的 Smart Device Programmability(SDP)功能(以前稱作 Smart Device Extension

13、sSDE)可以幫助開發(fā)人員利用 Microsoft NET Compact Framework 編寫移動(dòng)應(yīng)用程序,從而在連接或短開外部設(shè)備的情況下第 1 頁 共 20 頁啟用分布式的移動(dòng)計(jì)算。使用.NET Compact Framework 中提供的大量類庫,開發(fā)者編寫程序的速度得到很大的提高,使用 Visual Studio .NET2005,開發(fā)者可以在桌面系統(tǒng)中用到的相同工具和技術(shù)來開發(fā) Pocket PC 2003(具備相應(yīng)的SDK)以及 Smart Phone2003。它將安裝.NET Compact Framework,這是專門為資源有限的設(shè)備設(shè)計(jì)的。開發(fā)者可以使用 C#語言或者

14、Visual Basic.NET 語言來開發(fā)移動(dòng)和嵌入式設(shè)備。除此之外它還能很好的應(yīng)用于 XML Web Service 或ADO.NET 的應(yīng)用程序。1.3.2 SQL Server CE 數(shù)據(jù)庫數(shù)據(jù)庫Microsoft SQL Server 2000 Windows CE Edition(SQL Server CE)2.0 版是精簡(jiǎn)的數(shù)據(jù)庫,Microsoft SQL Server 擴(kuò)展到基于 Windows CE 的移動(dòng)設(shè)備,并將開發(fā)者的快速應(yīng)用程序開發(fā)提供一個(gè)一致的編程模型。SQL Server CE 不同于 Windows CE 操作系統(tǒng)本身的屬性數(shù)據(jù)庫,它是一個(gè)真正意義上的關(guān)系數(shù)據(jù)

15、庫,它具有強(qiáng)大的數(shù)據(jù)存儲(chǔ)功能,優(yōu)化查詢處理器,以及可靠,可伸縮的連接能力。SQL Server CE 的引擎提供了關(guān)系型數(shù)據(jù)庫的基本功能。遠(yuǎn)程數(shù)據(jù)訪問和合并復(fù)制,確保 SQL Server 數(shù)據(jù)庫中的數(shù)據(jù)不僅可以可靠的提交給用戶,而且能夠離線修改并在以后的時(shí)間內(nèi)與服務(wù)器進(jìn)行數(shù)據(jù)同步。SQL Server CE2.0 還包括新的特性。使用 SDE 處理數(shù)據(jù)與通過 eMbedded Visual Basic 處理數(shù)據(jù)的差別很大。如果采用 eMbedded Visual Basic,可以使用兩種類型的數(shù)據(jù)庫Pocket Access 和 SQLCE。許多的開發(fā)者選擇使用 Pocket Access,

16、因?yàn)樗菀讓?shí)現(xiàn),而且與 Microsoft Access 相集成。而 SDE 只支持 SQLCE 在 eMbedded Visual Basic 中,你具有 ADOCE。SDE 提供 ADO.NET。SQL Server 遠(yuǎn)程數(shù)據(jù)訪問:遠(yuǎn)程數(shù)據(jù)訪問(RDA)為 Pocket PC 應(yīng)用程序提供了功能強(qiáng)大而簡(jiǎn)單的方法,來訪問位于遠(yuǎn)程的 SQL Server 2000 或者 SQL Server 7.0 數(shù)據(jù)庫中的 SQL Server 數(shù)據(jù)。不論 Pocket PC 是連續(xù)還是間歇地連接到 SQL Server 系統(tǒng),均可使用 RDA。應(yīng)用程序以兩種方式使用 RDA:一種是應(yīng)用程序提交數(shù)據(jù)操作語

17、言(DML)語句,該語句被轉(zhuǎn)交到 SQL Server 服務(wù)器上執(zhí)行。另一種是應(yīng)用程序提供返回查詢結(jié)果集的 SQL 查詢語句。查詢結(jié)果集被返回給 Pocket PC 設(shè)備,并以數(shù)據(jù)庫表的形式存儲(chǔ)在 SQL Server CE 數(shù)據(jù)庫里。RDA 能跟蹤 Pocket PC 應(yīng)用程序所做的所有更改。RDA 使用 Microsoft Internet 信息服務(wù)(IIS)的身份驗(yàn)證,授權(quán)和加密服務(wù)。1.3.3 C/S 結(jié)構(gòu)結(jié)構(gòu)C/S (Client/Server)結(jié)構(gòu),即大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配第 2 頁 共 20 頁到

18、Client 端和 Server 端來實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是 Client/Server 形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的 Web 應(yīng)用發(fā)展,Web 和 Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應(yīng)用系統(tǒng),通過現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。傳統(tǒng)的 CS 體系結(jié)構(gòu)雖然采用的是開放模式,但這只是系統(tǒng)開發(fā)一級(jí)的開放性,在特定的應(yīng)用中無論是 Client 端,還是Server 端都還需要特定的軟件支持。由于沒能提供用

19、戶真正期望的開放環(huán)境,C/S 結(jié)構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)系統(tǒng)開發(fā)不同版本的軟件, 加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適應(yīng)百臺(tái)電腦以上局域網(wǎng)用戶同時(shí)使用。而且代價(jià)高,效率低。第 3 頁 共 20 頁第第 1 1 章章 系統(tǒng)需求分析系統(tǒng)需求分析1. 1 功能需求功能需求綜合運(yùn)用所學(xué)知識(shí)開發(fā)一種基于 PC 機(jī)的手機(jī)短信通信系統(tǒng),側(cè)重在于模擬手機(jī)短信通信的過程。通過在客戶端輸入信息能夠訪問本地?cái)?shù)據(jù)庫,即在本地?cái)?shù)據(jù)庫 SQLCE 上能查看信息;通過 RDA 的技術(shù),執(zhí)行 PULL 操作(從遠(yuǎn)程數(shù)據(jù)庫服務(wù)器接受數(shù)據(jù))和 PUSH 操作(向遠(yuǎn)程數(shù)據(jù)庫服務(wù)器發(fā)送信息)訪問遠(yuǎn)程數(shù)據(jù)庫??蛻舳思茨M器應(yīng)用功

20、能需求:對(duì)數(shù)據(jù)和信息的添加,刪除功能:完成對(duì)用戶 ID,發(fā)送和接收信息的添加,刪除。對(duì)信息的發(fā)送和接收功能:完成對(duì)信息的發(fā)送和接收,訪問本地?cái)?shù)據(jù)庫和遠(yuǎn)程數(shù)據(jù)庫。用戶可以在 Pocket PC 完成和手機(jī)上同樣的操作,向 Pocket PC 中輸入接收方 ID 和信息,通過 RDA 技術(shù)將用戶的信息發(fā)送到遠(yuǎn)程服務(wù)器上,同樣也可以從遠(yuǎn)程服務(wù)器上接收信息。Pocket PC 上存儲(chǔ)數(shù)據(jù)實(shí)際上是對(duì)本地?cái)?shù)據(jù)庫 SQLCE 的操作,通過按鈕控件把相關(guān)的信息存儲(chǔ)到本地?cái)?shù)據(jù)庫中,用戶 ID,信息,用戶名,同樣也可以刪除本地?cái)?shù)據(jù)庫里的信息。Pocket PC 對(duì)遠(yuǎn)程數(shù)據(jù)庫的訪問需要使用 RDA 的同步技術(shù),運(yùn)用

21、 PULL 和PUSH 操作分別從遠(yuǎn)程的服務(wù)器接收數(shù)據(jù)和向遠(yuǎn)程服務(wù)器發(fā)送數(shù)據(jù)。服務(wù)器端即 SQL Server 2000 數(shù)據(jù)庫的功能需求:保存和接收用戶 ID,用戶名,信息。為方便開發(fā)者可以使用 SQL Server 查詢語言,查詢數(shù)據(jù)庫中保存的數(shù)據(jù),可通過使用 SQL 語句完成對(duì)遠(yuǎn)程數(shù)據(jù)庫的操作。該功能可以方便開發(fā)者修改數(shù)據(jù)庫中的數(shù)據(jù),使遠(yuǎn)程數(shù)據(jù)庫擁有更大的拓展性。通過完善遠(yuǎn)程數(shù)據(jù)庫的存儲(chǔ)能力從而達(dá)到對(duì) Pocket PC 離線開發(fā)的更大功能。1.2 性能需求性能需求該設(shè)計(jì)最大存儲(chǔ)容量為用戶存儲(chǔ)容量和信息存儲(chǔ)容量。用戶存儲(chǔ)容量中包含了用戶 ID(即手機(jī)號(hào)碼)和姓名,其容量允許用戶隨時(shí)添加和

22、刪除存儲(chǔ)信息,但用戶存儲(chǔ)容量最高為 50 個(gè)字符,信息存儲(chǔ)容量為 100 個(gè)字符。該設(shè)計(jì)由于是在 PC 機(jī)上模擬 PPC 通信,其運(yùn)行的時(shí)間受其搭建的系統(tǒng)平臺(tái)環(huán)境的影響(主要是開發(fā)機(jī)的硬件環(huán)境影響)。一般從程序調(diào)試運(yùn)行到模擬器第 4 頁 共 20 頁部署成功要花 2 至 3 分鐘時(shí)間。安全性方面由于系統(tǒng)平臺(tái)搭建時(shí)均采用默認(rèn)值,因此在使用該系統(tǒng)時(shí)不會(huì)存在使用過程中的保密限制。任何用戶只要在系統(tǒng)正常情況下都可使用。當(dāng)程序運(yùn)行中同時(shí)要考慮網(wǎng)絡(luò)環(huán)境的配置。如果網(wǎng)絡(luò)出現(xiàn)問題,Pocket PC可以正常訪問 SQLCE 本地?cái)?shù)據(jù)庫,而暫時(shí)不能訪問 SQL Server 2000 遠(yuǎn)程數(shù)據(jù)庫,信息將保存暫時(shí)

23、保存在 SQLCE 本地?cái)?shù)據(jù)庫上。在 RDA 訪問遠(yuǎn)程數(shù)據(jù)庫中是一種樂觀的同步訪問方式,但當(dāng)發(fā)生沖突或錯(cuò)誤的時(shí)候,需要開發(fā)者手動(dòng)維護(hù)數(shù)據(jù)完整性。在此情況下可用合并復(fù)制的技術(shù)完成對(duì)設(shè)備的同步訪問。1.3 環(huán)境需求環(huán)境需求該設(shè)計(jì)完成需要硬件環(huán)境和軟件環(huán)境的支持。(1) 硬件環(huán)境:主機(jī)上采用一般的個(gè)人 PC,其硬件核心在于處理器和內(nèi)存,硬盤有效空間在 4G 以上。(2) 軟件環(huán)境:操作系統(tǒng)為 Windows Server 2003 ;在網(wǎng)絡(luò)環(huán)境上另需安裝 IIS 信息服務(wù)器;數(shù)據(jù)庫為 SQL Server 2000 sp4 和 SQL Server 2000 Windows CE Edition 2

24、.0(SQL Server CE),開發(fā)工具為 Visual Studio.NET2005。1.4 界面需求界面需求為使該設(shè)計(jì)可行,可靠,其界面設(shè)計(jì)要求簡(jiǎn)單,方便,且具有人性化的操作界面,系統(tǒng)功能可以良好的功能按鈕相結(jié)合。使用 Send,accept,添加,刪除四個(gè)按鈕控制相關(guān)的功能;TextBox 控件用來分別顯示信息和用戶 ID,用戶名。整個(gè)界面簡(jiǎn)單,醒目,且有效。第二章第二章 系統(tǒng)主體設(shè)計(jì)系統(tǒng)主體設(shè)計(jì)2. 1 主體設(shè)計(jì)思路主體設(shè)計(jì)思路本系統(tǒng)主要使用 SQL Server CE 數(shù)據(jù)庫和 SQL Server 2000 數(shù)據(jù)庫,通過引用 System.Data.SqlServerCe 組件

25、創(chuàng)建 SqlConnection 實(shí)例利用代碼在Pocket PC 2003 模擬器上創(chuàng)建本地?cái)?shù)據(jù)庫表:MsgInfo。對(duì)遠(yuǎn)程 SQL Server 2000 數(shù)據(jù)庫的訪問通過 RDA 技術(shù)需要 System.Data.SqlClient 的引用完成 PULL操作和 PUSH 操作。在對(duì) Pocket PC 上存儲(chǔ)數(shù)據(jù)實(shí)際上是對(duì)本地?cái)?shù)據(jù)庫的操作,通過代碼在編輯環(huán)境中創(chuàng)建出本地?cái)?shù)據(jù)庫 AccessMsg.sdf,該數(shù)據(jù)庫是個(gè)精簡(jiǎn)版的 SQL Server 數(shù)據(jù)庫,同樣是個(gè)關(guān)系型數(shù)據(jù)庫,同時(shí)通過代碼在 SQLCE 中創(chuàng)建表MsgInfo,表中列屬性為用戶 ID(SendID,AcceptID)和

26、Message,分別用來存儲(chǔ)第 5 頁 共 20 頁用戶信息和發(fā)送接收的信息。整個(gè)系統(tǒng)的開發(fā)除了建立數(shù)據(jù)庫外,在實(shí)現(xiàn)功能代碼上要?jiǎng)?chuàng)建一個(gè)SQLCECF 的實(shí)例。使數(shù)據(jù)庫能夠支撐整個(gè)系統(tǒng)功能實(shí)現(xiàn)。在 Pocket PC 上其界面設(shè)計(jì)思路是盡量簡(jiǎn)單,但能滿足系統(tǒng)需求。控件上的設(shè)計(jì)簡(jiǎn)潔,明了。使模擬器和真實(shí)的手機(jī)操作界面相似,到達(dá)界面設(shè)計(jì)的需求。在發(fā)送端的模擬器上顯示接收端的 ID 和 Message,在接收端的模擬器上顯示發(fā)送端的 ID 和同樣的 Message,使模擬器功能上和真實(shí)手機(jī)一致。在實(shí)現(xiàn)對(duì)遠(yuǎn)程數(shù)據(jù)庫 SQL Server 2000 訪問時(shí)主要采用 RDA 的同步技術(shù)。運(yùn)用 PULL 和

27、 PUSH 操作分別從遠(yuǎn)程的服務(wù)器接收數(shù)據(jù)和向遠(yuǎn)程服務(wù)器發(fā)送數(shù)據(jù)。在運(yùn)用 RDA 時(shí)由于是一種樂觀的訪問方式,而沒有考慮系統(tǒng)環(huán)境存在的沖突,當(dāng)訪問不成功時(shí),數(shù)據(jù)會(huì)暫時(shí)保存在本地?cái)?shù)據(jù)庫中,其實(shí)質(zhì)也是對(duì)本地?cái)?shù)據(jù)庫的操作。當(dāng)系統(tǒng)環(huán)境通暢后再一次對(duì)數(shù)據(jù)進(jìn)行 PULL 和 PUSH 操作就能訪問遠(yuǎn)程數(shù)據(jù)庫。系統(tǒng)整體運(yùn)行模式:通過一臺(tái) Pocket PC 向另一臺(tái) Pocket PC 傳送信息,首先發(fā)送方將信息寫入 Pocket PC 中即完成對(duì)發(fā)送方本地?cái)?shù)據(jù)庫的操作,在通過 PUSH 操作向遠(yuǎn)程數(shù)據(jù)庫中發(fā)送數(shù)據(jù),接收方再通過 PULL 操作從遠(yuǎn)程數(shù)據(jù)庫接受數(shù)據(jù),此時(shí)信息將保存在接收方本地?cái)?shù)據(jù)庫中,通過相

28、應(yīng)的查詢操作完成對(duì)接收方本地?cái)?shù)據(jù)庫的訪問。同時(shí)需要考慮此傳輸過程是一種樂觀的傳輸過程。2.2 設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì)結(jié)構(gòu)系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖和 RDA 功能結(jié)構(gòu)圖如圖 1,圖 2 所示智能通訊設(shè)備智能通訊設(shè)備SQL Server CESQL Server CESQL Server 2000圖 1 系統(tǒng)結(jié)構(gòu)圖第 6 頁 共 20 頁 第 7 頁 共 20 頁 圖 2 RDA 功能系統(tǒng)結(jié)構(gòu)圖2.2.1 系統(tǒng)功能模塊結(jié)構(gòu)系統(tǒng)功能模塊結(jié)構(gòu)系統(tǒng)總體功能模塊如圖 3 所示:短信通信系統(tǒng) 圖 3 系統(tǒng)功能模塊(1)發(fā)送方包含了接收方的 ID 號(hào)和待發(fā)信息,接收方的 ID 號(hào)以列表的方式展現(xiàn)在發(fā)送方。(2)接收方包含了發(fā)送方

29、的 ID 號(hào)和接收信息(即發(fā)送方發(fā)出的信息) 。(3)發(fā)送方通過模擬器軟件盤寫入信息,通過添加刪除功能完成信息寫入與發(fā)送。(4)通過 RDA 技術(shù)可以訪問在遠(yuǎn)程 SQL Server 2000 數(shù)據(jù)庫中表內(nèi)信息。發(fā)送方接收方信 息接收方 ID發(fā)送方 ID信 息第 8 頁 共 20 頁2.2.2 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)在 SQL Server 2000 企業(yè)管理器中創(chuàng)建數(shù)據(jù)庫 mysqlce 和表 MsgInfo1(如表 1)所示 表 1 數(shù)據(jù)庫表 MsgInfo1使用 SQLCE 通過代碼在智能設(shè)備 Pocket PC 2003 上創(chuàng)建數(shù)據(jù)庫AccessMsg.sdf 和表 Ppc1(如

30、表 2,圖 4 所示) 表 2 本地?cái)?shù)據(jù)庫表 Ppc1圖 4 Pocket PC 上創(chuàng)建的本地?cái)?shù)據(jù)庫列 名類 型長(zhǎng) 度特 性SendIDnvarchar50NOT NULLAcceptIDnvarchar50NOT NULLMessagenvarchar100 NULLDateTimetime8NOT NULL列 名類 型長(zhǎng) 度特 性SendIDnvarchar50NOT NULLAccepterIDnvarchar50NOT NULLMessagenvarchar100NULL第 9 頁 共 20 頁第三章第三章 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)3.1 程序設(shè)計(jì)語言程序設(shè)計(jì)語言Visual Basic.NE

31、T 是新一代的 Visual Basic 語言,它是一種簡(jiǎn)便快捷地創(chuàng)建.NET 應(yīng)用程序(包括 XML Web services 和 ASP.NET.Web 應(yīng)用程序)的語言 Visual Basic.NET 具有許多新的功能和改進(jìn)功能(如繼承,接口和重載),這使 Visual Basic.NET 成為功能強(qiáng)大的面向?qū)ο蟮木幊陶Z言,其他新的語言功能包括自由線程處理和結(jié)構(gòu)化異常處理。Visual Basic.NET 還完全集成了.NET Framework 和公共語言運(yùn)行苦,.NET Framework 和公共語言運(yùn)行庫,共同提供語言互操作性,垃圾回收,增強(qiáng)的安全符合性和改進(jìn)的版本支持。Visu

32、al Basic 開發(fā)者現(xiàn)在可以使用顯示多線程處理創(chuàng)建多線程可伸縮的應(yīng)用程序。Visual Basic.NET 中其他的新語言功能包括結(jié)構(gòu)化異常處理,自定義屬性和符合公共語言規(guī)范(CLS)。CLS 是對(duì)諸如數(shù)據(jù)類型之類的事物以及對(duì)象的公開和交互操作方式進(jìn)行標(biāo)準(zhǔn)化的一組規(guī)則。Visual Basic.NET 添加了幾項(xiàng)利用 CLS 優(yōu)勢(shì)的功能,任何符合 CLS 的語言都可以使用在 Visual Basic.NET 中創(chuàng)建的類,對(duì)象和組件。Visual Basic 用戶可以從其他符合 CLS 的編程語言訪問類,組件和對(duì)象,而不用擔(dān)心諸如數(shù)據(jù)類型之類的語言特定的差異,Visual Basic.NET

33、 程序使用的CLS 功能包括程序集,命名空間和屬性。Visual Basic.NET 支持許多新的或改進(jìn)的面向?qū)ο笳Z言功能,如重載,繼承,Overrides 關(guān)鍵字,接口,共享成員和構(gòu)造函數(shù),還包括結(jié)構(gòu)化異常處理,委托以及幾個(gè)新的數(shù)據(jù)類型。3.2 開發(fā)環(huán)境搭建開發(fā)環(huán)境搭建3.2.1 配置配置 SQL Server 2000 數(shù)據(jù)庫數(shù)據(jù)庫安裝使用設(shè)備上的移動(dòng)數(shù)據(jù)庫,首先要安裝 SQL Server,因?yàn)槭褂?SQL Server 可以進(jìn)行遠(yuǎn)程數(shù)據(jù)訪問(RDA)和合并復(fù)制兩種方式的同步數(shù)據(jù)。RDA 訪問功能支持與 SQL Server7.0(和更高版本)數(shù)據(jù)庫的連接,合并復(fù)制則要求后端必須是 SQ

34、L Server 2000。這里選擇 SQL Server 2000 安裝,同時(shí)為下步安裝 SQL Server CE 做準(zhǔn)備,要先安裝 SQL Server 2000 升級(jí)補(bǔ)丁包 SQL Server PackSP4。在選擇驗(yàn)證模式時(shí)選擇混合模式。3.2.2 安裝及配置安裝及配置 SQL Server CE下載最新自解壓包 sqlce20sql2ksp4 和 sqlce2.0 安裝文件,即可將 SQL Server CE(SSCE)數(shù)據(jù)庫安裝在開發(fā)用的 PC 機(jī)上(即服務(wù)器名 9PYAC859FD7PXWY)。如果僅僅創(chuàng)建本地?cái)?shù)據(jù)庫,則選擇(Development Tools)安裝即可;要使

35、用第 10 頁 共 20 頁SQL Server CE 的遠(yuǎn)程數(shù)據(jù)訪問(RDA)和復(fù)制技術(shù),除了安裝以上外,還需要選擇(Server Tools)安裝。安裝 SQL Server CE 2.0 服務(wù)器工具程序,通過在運(yùn)行 IIS 的計(jì)算機(jī)上運(yùn)行 SQL Server CE 服務(wù)器工具安裝程序之一,自動(dòng)安裝 SQL Server CE 連接管理實(shí)用工具和 SQL Server CE 虛擬目錄創(chuàng)建向?qū)?。安裝結(jié)束時(shí),可以轉(zhuǎn)到“開始”菜單,指向“程序” ,單擊“Microsoft SQL Server CE2.0”然后單擊“配置 IIS 中的連接支持” 。在 SQL Server CE 管理實(shí)用工具的

36、右窗格中雙擊“創(chuàng)建虛擬目錄”向?qū)?。將虛擬目錄名為“sqlce”,將文件 sscesa20.dll 拷貝到該目錄下(在這一步中要先在你設(shè)定的目錄下建立一個(gè)物理文件夾并將該文件夾設(shè)置為共享文件夾,并修改該文件夾的使用權(quán)限,當(dāng)在創(chuàng)建虛擬目錄時(shí)文件夾路徑會(huì)自動(dòng)映射到該物理文件夾下) ,運(yùn)行 cmd.exe,轉(zhuǎn)到C:Inetpubwwwrootsqlce 目錄下,然后鍵入“regsvr32 sscesa20.dll”將COM 組件注冊(cè)到 DLL 中,在 Pocket PC 2003 模擬器的地址欄輸入http:/9PYAC859FD7PXWY/sqlce/sscesa20.dll 測(cè)試連接到服務(wù)器9PY

37、AC859FD7PXWY 是否成功。如果數(shù)據(jù)庫安裝正確,將得到一個(gè)包含 SQL Server CE Agent 的 Web 頁面。需要注意一點(diǎn):在配置環(huán)境時(shí)盡量先不要對(duì)整個(gè)操作系統(tǒng)安裝殺毒軟件和其他的防護(hù)性軟件,以免安裝快照文件夾時(shí)失敗,并提示開發(fā)者找不到網(wǎng)絡(luò)路徑。在本設(shè)計(jì)中由于要訪問遠(yuǎn)程數(shù)據(jù)庫,因此不僅需要運(yùn)用 RDA 方法來實(shí)現(xiàn)SQL Server 數(shù)據(jù)庫與本地 SQL Server CE 數(shù)據(jù)庫之間同步數(shù)據(jù)操作,還需要安裝(Server Tools)才能訪問遠(yuǎn)程數(shù)據(jù)庫。3.33.3 創(chuàng)建本地設(shè)備上的數(shù)據(jù)庫創(chuàng)建本地設(shè)備上的數(shù)據(jù)庫創(chuàng)建本地?cái)?shù)據(jù)庫 AccessMsg.sdf 和表 Ppc1 代

38、碼如下:創(chuàng)建SQL Server CE 數(shù)據(jù)庫 Private Sub CreatemyDB() Dim boolCreateNewDatabase As Boolean = True Dim slocalDatabaseName As String Dim AppPath As String 返回Pocket PC應(yīng)用程序路徑 AppPath = System.IO.Path.GetDirectoryName(Reflection.Assembly. _ GetExecutingAssembly().GetName.CodeBase.ToString() slocalDatabaseName

39、 = AppPath & AccessMsg.sdf 檢查數(shù)據(jù)庫文件是否存在 If System.IO.File.Exists(slocalDatabaseName) Then boolCreateNewDatabase = False End IfIf (System.IO.File.Exists(slocalDatabaseName) Then第 11 頁 共 20 頁 System.IO.File.Delete(slocalDatabaseName) End If Dim eng As Data.SqlServerCe.SqlCeEngine = New Data.SqlServ

40、erCe.SqlCeEngine(Data source = & slocalDatabaseName) eng.CreateDatabase() 連接SQL Server CE 數(shù)據(jù)庫 Dim localconnection As Data.SqlServerCe.SqlCeConnection localconnection = New Data.SqlServerCe.SqlCeConnection(Data source = & slocalDatabaseName) localconnection.Open()創(chuàng)建數(shù)據(jù)庫表 Dim buildtables As Sys

41、tem.Text.StringBuilder = New System.Text.StringBuilder buildtables.Append(CREATE TABLE ppc1() buildtables.Append(SenderID nvarchar(50) null) buildtables.Append(,AceepterID nvarchar(50) null) buildtables.Append( ,Message nvarchar(100) null) buildtables.Append()Dim cmdCreateTable As Data.SqlServerCe.S

42、qlCeCommand cmdCreateTable = New Data.SqlServerCe.SqlCeCommand(buildtables.ToString(), localconnection) cmdCreateTable.CommandType = CommandType.Text cmdCreateTable.ExecuteNonQuery() localconnection.Close() End Sub3.4 系統(tǒng)設(shè)計(jì)代碼系統(tǒng)設(shè)計(jì)代碼3.4.1 本地?cái)?shù)據(jù)庫訪問本地?cái)?shù)據(jù)庫訪問本地?cái)?shù)據(jù)訪問如圖 4-1 所示通過對(duì)本地?cái)?shù)據(jù)庫的訪問可以知道本地?cái)?shù)據(jù)庫上保存的相關(guān)信息??梢酝ㄟ^ S

43、QL Server CE 2.0 的查詢分析器 ISQLW 查詢信息,如圖 5 所示第 12 頁 共 20 頁圖 5 ISQLW 查詢分析器本地?cái)?shù)據(jù)庫訪問界面,如圖 6 所示圖 6 發(fā)送和接收過程界面通過向數(shù)據(jù)表中插入數(shù)據(jù)的公共過程可更改數(shù)據(jù)庫中的數(shù)據(jù):向數(shù)據(jù)表插入數(shù)據(jù)的公共過程 Public Sub runNonQuery(ByVal sqlcommandtext As String, ByVal localDatasource As String) Dim localConnection As Data.SqlServerCe.SqlCeConnection localConnection

44、 = New Data.SqlServerCe.SqlCeConnection(localDatasource) Dim cmdCreateTable As Data.SqlServerCe.SqlCeCommand localConnection.Open() cmdCreateTable = New Data.SqlServerCe.SqlCeCommand(sqlcommandtext, localConnection) cmdCreateTable.CommandType = CommandType.Text cmdCreateTable.ExecuteNonQuery() local

45、Connection.Close() cmdCreateTable.Dispose() localConnection.Dispose() End Sub該段代碼實(shí)現(xiàn)當(dāng)數(shù)據(jù)差入后使用 DataReader 和 DataSet 進(jìn)行讀取數(shù)據(jù)庫數(shù)據(jù): 使用DataReader訪問數(shù)據(jù) Public Function Getdata(ByVal localDataSource As String) As Data.SqlServerCe.SqlCeDataReader Try Dim localConnection As Data.SqlServerCe.SqlCeConnection localC

46、onnection = New Data.SqlServerCe.SqlCeConnection(localDataSource) 獲取數(shù)據(jù) Dim dr As Data.SqlServerCe.SqlCeDataReader第 13 頁 共 20 頁 Dim cmdGetdata As Data.SqlServerCe.SqlCeCommand localConnection.Open() cmdGetdata = New Data.SqlServerCe.SqlCeCommand(SELECT * FROM PPC1, localConnection) cmdGetdata.Command

47、Type = CommandType.Text dr = cmdGetdata.ExecuteReader(Data.CommandBehavior.CloseConnection) Return dr Catch ex As Data.SqlServerCe.SqlCeException MessageBox.Show(ex.Message) End Try End Function 使用DataSet訪問數(shù)據(jù) Public Function GetDataSet(ByVal localDatasource As String) As Data.DataSet Try Dim localCo

48、nnection As Data.SqlServerCe.SqlCeConnection localConnection = New Data.SqlServerCe.SqlCeConnection(localDatasource) 獲取數(shù)據(jù) Dim da As Data.SqlServerCe.SqlCeDataAdapter = New Data.SqlServerCe.SqlCeDataAdapter Dim ds As Data.DataSet = New Data.DataSet da.SelectCommand = New Data.SqlServerCe.SqlCeCommand

49、(SELECT *FROM PPC1, localConnection) da.Fill(ds) Return ds Catch ex As Data.SqlServerCe.SqlCeException MessageBox.Show(ex.Message) End Try End Function設(shè)計(jì)控件代碼的過程包含了在.NET 控件欄中拖入設(shè)計(jì)窗體控件,在后臺(tái)寫入控件觸發(fā)事件代碼,如圖 7 所示:第 14 頁 共 20 頁圖 7 界面控件設(shè)計(jì)界面控件按鈕功能實(shí)現(xiàn)代碼:Private Sub btOK_Click(ByVal sender As System.Object, ByVal

50、e As System.EventArgs) Handles btOK.Click Dim slocalDatabaseName As String Dim AppPath As String Dim boolCreateNewDatabase As Boolean = True AppPath = System.IO.Path.GetDirectoryName(Reflection.Assembly. _ GetExecutingAssembly().GetName.CodeBase.ToString()slocalDatabaseName = AppPath & AccessMsg

51、.sdfIf System.IO.File.Exists(slocalDatabaseName) Then boolCreateNewDatabase = False End If Dim conNwindCE As Data.SqlServerCe.SqlCeConnection = New Data.SqlServerCe.SqlCeConnection(Data source = & slocalDatabaseName) Dim Name As String = Me.txtName.Text Dim Number As String = Me.txtNum.Text conN

52、windCE.Open() Dim cmdData As Data.SqlServerCe.SqlCeCommand = New Data.SqlServerCe.SqlCeCommand(INSERT INTO Aceepter (ID,Name,Type) VALUES( & Name & , & Number & ,), conNwindCE)cmdData.CommandType = Data.CommandType.Text cmdData.ExecuteNonQuery()conNwindCE.Close()LoadData()End If第 15

53、頁 共 20 頁3.4.2 遠(yuǎn)程數(shù)據(jù)訪問遠(yuǎn)程數(shù)據(jù)訪問RDA 為基于.NET Compact Framework 的 Pocket PC 應(yīng)用程序提供了與遠(yuǎn)程SQL Server 數(shù)據(jù)庫實(shí)例進(jìn)行數(shù)據(jù)同步的簡(jiǎn)單方法。RDA 適用于簡(jiǎn)單的,不需要全功能的合并復(fù)制功能的數(shù)據(jù)同步,使用 RDA 不需要配置 SQL Server 的復(fù)制器和發(fā)布器。使用 RDA 技術(shù)中的 PULL 操作向遠(yuǎn)程數(shù)據(jù)庫中的服務(wù)器接收數(shù)據(jù)。在Pocket PC 中完成對(duì)信息接收的操作:Public Class RDAPublic Shared Sub pull() Dim _strRemoteConnect As String

54、_strRemoteConnect = provider = sqloledb;data source =.;Initial Catalog = MsgInfo;Integrated Security=SSPI;Dim AppPath As String Dim _strLocalConnect As String AppPath = System.IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.ToString() _strLocalConnect = data so

55、urce= & AppPath & AccessMsg.sdf Const _strInternetURL As String = /sqlce/sscesa20.dllTry Dim RDA As Data.SqlServerCe.SqlCeRemoteDataAccess = New Data.SqlServerCe.SqlCeRemoteDataAccess() RDA.InternetLogin = String.Empty RDA.InternetPassword = String.Empty RDA.InternetUrl = _str

56、InternetURL RDA.LocalConnectionString = _strLocalConnect RDA.Pull(localMsgInfo, Select * from MsgInfo, _strRemoteConnect, System.Data.SqlServerCe.RdaTrackOption.TrackingOnWithIndexes) Catch ex As Data.SqlServerCe.SqlCeException MessageBox.Show(ex.Message) End Try End Sub使用 RDA 技術(shù)中的 PUSH 操作向遠(yuǎn)程數(shù)據(jù)庫中的服務(wù)

57、器發(fā)送數(shù)據(jù)。在Pocket PC 中完成對(duì)信息發(fā)送的操作: Public Shared Sub push() Dim _strRemoteConnect As String _strRemoteConnect = provider = sqloledb;data source =.;Initial Catalog = MsgInfo1;Dim AppPath As String Dim _strLocalConnect As String AppPath = 第 16 頁 共 20 頁System.IO.Path.GetDirectoryName(Reflection.Assembly.Get

58、ExecutingAssembly().GetName().CodeBase.ToString() _strLocalConnect = data source= & AppPath & AccessMsg.sdf Const _strInternetURL As String = /sqlce/sscesa20.dll Dim RDA As Data.SqlServerCe.SqlCeRemoteDataAccess = New Data.SqlServerCe.SqlCeRemoteDataAccess() Try With RDA .Inte

59、rnetLogin = String.Empty .InternetPassword = String.Empty .InternetUrl = _strInternetURL .LocalConnectionString = _strLocalConnect .Push(localMsgInfo1, _strRemoteConnect, System.Data.SqlServerCe.RdaBatchOption.BatchingOn)End With Catch ex As Data.SqlServerCe.SqlCeException MessageBox.Show(ex.Message

60、)End TryEnd SubEnd Class第四章第四章 測(cè)試和結(jié)果測(cè)試和結(jié)果4.14.1 測(cè)試測(cè)試在系統(tǒng)搭建起后通過使用部署 Pocket PC 2003 模擬器進(jìn)行測(cè)試,首先從Visual Studio.NET 菜單欄的“調(diào)試”來進(jìn)行調(diào)試,運(yùn)行代碼調(diào)試無誤,在部署對(duì)話框中選擇 Pocket PC 2003 SE 仿真模擬器,單擊“部署”按鈕,系統(tǒng)加載 Pocket PC 2003 模擬器,并在模擬器上運(yùn)行 SQLCECF 應(yīng)用程序,當(dāng)測(cè)試環(huán)境報(bào)錯(cuò),則開發(fā)者一定要注意查看報(bào)錯(cuò)代碼和報(bào)錯(cuò)的信息,以便準(zhǔn)確診斷出錯(cuò)的原因,然后根據(jù)錯(cuò)誤類型重新配置 IIS 服務(wù),SQL Server 2000 數(shù)據(jù)庫發(fā)布或

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論