2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  題 目  基于 .NET的即時(shí)通訊系統(tǒng) </p><p>  學(xué)生姓名 專業(yè)班級(jí) 安工+計(jì)03-2  </p><p>  所在院系   軟件學(xué)院         </p><p>  

2、指導(dǎo)教師 職稱   副教授   </p><p>  所在單位 嵌入式系統(tǒng)教研室   </p><p>  完成日期 年 月 日</p><p><b>  摘 要</b></p><p>  自從1996年第一個(gè)即時(shí)通

3、訊軟件ICQ出現(xiàn)以來,即時(shí)通訊(Instant Messaging)這種以Internet網(wǎng)絡(luò)及其他有線、無線網(wǎng)絡(luò)為基礎(chǔ)的,以實(shí)時(shí)方式與其他在線用戶交流、傳遞信息的通訊方式,受到了人們的普遍歡迎。</p><p>  即時(shí)通訊系統(tǒng)均采用了客戶機(jī)/服務(wù)器(C/S)模式,在此模式下,服務(wù)器無疑是處于一個(gè)核心地位。因而,本文圍繞即時(shí)通訊系統(tǒng)服務(wù)器端軟件開發(fā)這一核心展開的。</p><p>  首

4、先,研究了當(dāng)今流行的各種即時(shí)通訊軟件,對(duì)其進(jìn)行分析,確定了基于.NET框架下實(shí)現(xiàn)即時(shí)通訊系統(tǒng)的功能分析,提出了不同的即時(shí)通訊服務(wù)器的架構(gòu)。其次,圍繞即時(shí)通訊的基本文字交流(在線文字傳輸),注冊(cè),登錄,添加好友,刪除好友等功能,設(shè)計(jì)了不同的模塊來實(shí)現(xiàn)上述功能。通過TCP/IP協(xié)議發(fā)送和管理消息。使用SQL server 2005數(shù)據(jù)庫對(duì)用戶信息以及通訊信息等進(jìn)行及時(shí)保存。</p><p>  綜上所述,本論文致力于

5、研究基于.NET技術(shù)基礎(chǔ),一套簡單、安全、易于使用的網(wǎng)絡(luò)即時(shí)通訊系統(tǒng)。</p><p>  關(guān)鍵詞:即時(shí)通訊系統(tǒng);服務(wù)器;在線消息傳輸</p><p><b>  Abstract</b></p><p>  Since ICQ (I Seek you), the first Instant Messaging software, was bo

6、rn in 1996, Instant Messaging, the real-time communication method that is based on Internet and other wired or wireless networks and can interview and transfer information with other online users, has been welcomed popul

7、arly.</p><p>  The instant messaging system has adopted the client and server (C/S) mode. Under this mode, the server is undoubtedly in a key position. This thesis is just launched around this core of softwa

8、re development of server end of the instant messaging system.</p><p>  First of all, I studied various kinds of popular instant messaging soft wares, analyzed them, and then confirmed that the function of In

9、stant Messaging system on .NET analyses, and put forward the framework of the server different from the common instant messaging system.</p><p>  Secondly, based the function of online message transferring,

10、registering users, login, adding friends and deleting friends, design different modules to achieve them. Sending and managing information by TCP/IP. And preserving user information and timely communication information b

11、y SQL server 2005 database.</p><p>  In this thesis, a real-time network communication system which is simple, secure and based on .NET is investigated.</p><p>  Key words: Instant Messaging sys

12、tem; Service; Online message transfer</p><p><b>  目 錄</b></p><p><b>  第一章 緒論4</b></p><p>  1.1InstantMessenger軟件的意義4</p><p>  1.2國內(nèi)外主流Instan

13、tMessager軟件的分析4</p><p>  1.3本文內(nèi)容安排6</p><p>  第二章 即時(shí)通訊系統(tǒng)的技術(shù)背景7</p><p>  2.1客戶機(jī)/服務(wù)器模型7</p><p>  2.2.NETFramework簡介8</p><p>  2.3VisualStudio2005簡介10&l

14、t;/p><p>  2.4Windowssocket編程原理11</p><p>  2.5SQLserver簡介18</p><p>  2.5本章小結(jié)20</p><p>  第三章 SQL語言與ADO21</p><p>  3.1常用SQL語句簡介21</p><p>  3.

15、2ADO簡介22</p><p>  3.3本章小結(jié)23</p><p>  第四章 系統(tǒng)詳細(xì)設(shè)計(jì)24</p><p>  4.1系統(tǒng)的總體設(shè)計(jì)24</p><p>  4.2數(shù)據(jù)庫詳細(xì)設(shè)計(jì)24</p><p>  4.3服務(wù)器端詳細(xì)設(shè)計(jì)25</p><p>  4.4客戶端詳細(xì)設(shè)

16、計(jì)34</p><p><b>  本章小結(jié)38</b></p><p>  第五章 系統(tǒng)測(cè)試39</p><p>  5.1客戶機(jī)/服務(wù)器系統(tǒng)軟件測(cè)試特點(diǎn)39</p><p>  5.2測(cè)試過程40</p><p><b>  本章小結(jié)41</b></p

17、><p><b>  結(jié)束語43</b></p><p><b>  參考文獻(xiàn)45</b></p><p><b>  致謝46</b></p><p><b>  第一章 緒論 </b></p><p>  1.1Instan

18、t Messenger軟件的意義</p><p>  Internet通信目前已經(jīng)成為人們生活的一個(gè)基本部分。“溝通無極限”,這句移動(dòng)通訊的廣告語其實(shí)更適合即時(shí)聊天。即時(shí)聊天使親友的溝通突破時(shí)空極限,使辦公室的溝通突破上下級(jí)極限,使陌生人的溝通突破環(huán)境極限,使自我與外界的溝通突破心理極限。如果說互聯(lián)網(wǎng)創(chuàng)造了新生活,那么讓新生活變得更暢快的就是即時(shí)通訊軟件(Instant Messaging Software,以下

19、簡稱IM)。早期在互聯(lián)網(wǎng)上,人們只能通過E-Mail、新聞組、BBS等“原始”方式交流,往往不能夠及時(shí)把消息傳遞給對(duì)方,甚至不知道對(duì)方什么時(shí)候能夠看到,或有誰能看到誰又會(huì)回應(yīng)。作為使用頻率最高的網(wǎng)絡(luò)軟件即時(shí)聊天已經(jīng)突破了作為技術(shù)工具的極限,被認(rèn)為是現(xiàn)代交流方式的象征,并構(gòu)建起一種新的社會(huì)關(guān)系。它是迄今為止對(duì)人類社會(huì)生活改變最為深刻的一種網(wǎng)絡(luò)新形態(tài),沒有極限的溝通將帶來沒有極限的生活。據(jù)統(tǒng)計(jì),迄今為止,全球約有一億多人使用即時(shí)通訊軟件在網(wǎng)

20、上交流。中國網(wǎng)民慣用的即時(shí)通訊軟件“騰訊QQ”從1999年2月誕生到現(xiàn)在,注冊(cè)用戶已超過1.6億。 </p><p>  行業(yè)研究機(jī)構(gòu)Radicati Group公司一項(xiàng)題為《2003--2007間的即時(shí)通信和存在市場(chǎng)趨勢(shì)》的預(yù)報(bào)告稱,全球的即時(shí)通信服務(wù)賬戶將由去年的5.9億美元增長到2007年的14.39億美元,而即時(shí)通訊軟件市場(chǎng)將由2003年底時(shí)的680萬美元大幅成長至2007年的2570萬美元。其中企業(yè)領(lǐng)域

21、增長顯著,賬戶數(shù)量將由去年的6000萬增長到2007年的3.49億,增長幅度高達(dá)600%。即時(shí)通訊軟件的互動(dòng)性高于BBS和E-mail,它比電話嚴(yán)肅,E-mail輕松,利用它可以實(shí)時(shí)傳送文字信息、語音信息和發(fā)送文件。另外,它還可以作為單位內(nèi)部聯(lián)絡(luò)的一種方式,可以用來召開網(wǎng)絡(luò)會(huì)議,比起實(shí)地的會(huì)議來,不僅快捷,而且節(jié)省開支。就像現(xiàn)代社會(huì)的電話一樣,目前即時(shí)通訊軟件的確做到了這一點(diǎn)。</p><p>  1.2國內(nèi)外主

22、流Instant Messager 軟件的分析</p><p>  目前市面上流行的即時(shí)通訊軟件主要有:ICQ, 騰迅QQ, MSN, YAHOO MESSENGER, UC,以及“網(wǎng)易泡泡”等軟件。ICQ原是以色列的幾名學(xué)生開發(fā)出來的一款即時(shí)通訊工具軟件。它用點(diǎn)對(duì)點(diǎn)的方式通訊,任何登錄ICQ服務(wù)器的用戶,盡管國籍、膚色、文化背景、宗教信仰同,都能夠在網(wǎng)上即時(shí)溝通。任何人只要擁有ICQ號(hào)碼,就可以與世界各地的人做

23、朋友,它的互動(dòng)性是Web網(wǎng)頁、虛擬社區(qū)和電子郵件所無法媲美的。在辦公室中,同事之間透過ICQ聯(lián)絡(luò)事宜,就算近在咫尺,也無須起身交談:與遠(yuǎn)方的親朋好友交談,也只是輕輕敲幾下鍵盤就可以解決問題,這種交流在過去幾乎是無法想象的。但I(xiàn)CQ對(duì)中文的支持比較差,不適于中國使用。</p><p>  騰訊QQ是國內(nèi)最時(shí)髦的即時(shí)通訊工具,其用戶的年齡層次從剛開始的中小學(xué)生族,發(fā)展到現(xiàn)在的幾乎所有上網(wǎng)者。每當(dāng)看到連到網(wǎng)上的一臺(tái)臺(tái)電

24、腦上,屏幕上跳躍著一個(gè)個(gè)各式各樣“小人頭兒”,就知道QQ上的好友來信了。目前“騰迅QQ”開展了大量的網(wǎng)絡(luò)增值服務(wù),如為其用戶提供網(wǎng)上尋呼、視頻聊天、語音聊天、網(wǎng)絡(luò)硬盤、動(dòng)態(tài)新聞等信息,開通手機(jī)上的移動(dòng)QQ服務(wù),同時(shí)為每一個(gè)QQ賬號(hào)送一個(gè)5M的免費(fèi)郵箱。</p><p>  MSN是軟件巨頭微軟開發(fā)的MSN Messenger,把MSN Messenger嵌進(jìn)了Windows XP操作系統(tǒng)里。MSN Messeng

25、er有近30種語言的不同版本。您還可以使用此免費(fèi)程序撥打電話,用交談取代輸入,向手機(jī)發(fā)送消息,監(jiān)視新的電子郵件,共享圖片或其他任何文件,邀請(qǐng)朋友玩DirectPlay兼容游戲等等。目前MSN Messenger已經(jīng)推出ver8.0,在功能和外觀上都有很大的變化,在外觀界面上,也比以前的版本更加生動(dòng)。</p><p>  Yahoo Messenger(雅虎通)是由美國著名搜索網(wǎng)站Yahoo。推出聊天工具。Yaho

26、o Messenger的功能側(cè)重點(diǎn)似乎并不在它的聊天功能上,它更像一個(gè)免費(fèi)信息提供器。Yahoo Messenger支持多種操作系統(tǒng),并支持其它便攜式無線設(shè)備,具有與其它即時(shí)通訊軟件所不同的商業(yè)價(jià)值。你不僅可以隨時(shí)查看新聞和天氣預(yù)報(bào),甚至可以隨時(shí)查閱股票行情;你還能利用Yahoo Messenger安排自己的日程計(jì)劃,隨時(shí)探測(cè)新到的郵件。朗瑪U(kuò)C是2002年里新涌現(xiàn)的即時(shí)通訊軟件代表,它的開發(fā)者想通過朗瑪U(kuò)C給大家?guī)磉@樣一個(gè)全新的聊天

27、理念:新一代開放式即時(shí)通訊娛樂平臺(tái)。朗瑪U(kuò)C也的確給了我們一種前所未有的聊天新感覺:網(wǎng)上聊天,也可以情景交融。它采用自由變換場(chǎng)景、個(gè)性在線心情等人性化設(shè)計(jì),配合視頻電話、信息群發(fā)、文件互傳、在線游戲等使您在聊天的同時(shí)能邊說、邊看、邊玩。2004年7月6日,新浪網(wǎng)正式收購UC即時(shí)通訊技術(shù)平臺(tái),全力進(jìn)軍即時(shí)通訊市場(chǎng)?!熬W(wǎng)易泡泡”是由中國的互聯(lián)網(wǎng)技術(shù)公司網(wǎng)易(NetEase)開發(fā)的功能強(qiáng)大,方便靈活的即時(shí)通訊工具。集即時(shí)聊天、手機(jī)短信、在線娛

28、樂等功能于一體,除具備目前</p><p><b>  1.3本文內(nèi)容安排</b></p><p><b>  本文的內(nèi)容包括:</b></p><p>  流行的IM軟件的追蹤與分析,通過對(duì)各大公司的相似的即時(shí)通訊軟件的現(xiàn)狀分析,闡述基于.NET框架下開發(fā)即時(shí)通訊軟件可行性分析及實(shí)現(xiàn)方法;</p><

29、p>  開發(fā)基于.NET框架下即時(shí)通訊軟件的技術(shù)基礎(chǔ)概述,圍繞實(shí)現(xiàn).NET技術(shù)下即時(shí)通訊系統(tǒng)所需的系統(tǒng)結(jié)構(gòu)、平臺(tái)選取、以及一些技術(shù)方面的基本概念和基本思想;</p><p>  在.NET技術(shù)下實(shí)現(xiàn)即時(shí)通訊系統(tǒng)的整體計(jì)思路及概要設(shè)計(jì),從總體上介紹本系統(tǒng)的設(shè)計(jì)要求;</p><p>  在.NET技術(shù)下即時(shí)通訊系統(tǒng)服務(wù)器端和客戶端的詳細(xì)設(shè)計(jì),同時(shí)分析了各個(gè)功能模塊的設(shè)計(jì)與實(shí)現(xiàn);<

30、/p><p>  在.NET技術(shù)下即時(shí)通訊系統(tǒng)的測(cè)試及其結(jié)果。</p><p>  最后進(jìn)行了總結(jié)和展望了本系統(tǒng)尚需完善的部分。</p><p>  即時(shí)通訊系統(tǒng)的技術(shù)背景</p><p>  2.1客戶機(jī)/服務(wù)器模型</p><p>  客戶機(jī)/服務(wù)器模型,又稱為Client/Server模型,簡稱C/S架構(gòu)。如圖2-1

31、所示。C/S計(jì)算技術(shù)在信息產(chǎn)業(yè)中占有重要的地位。這種客戶/服務(wù)器模型是一種非對(duì)稱式編程模式。該模式的基本思想是把集中在一起的應(yīng)用劃分成為功能不同的兩個(gè)部分,分別在不同的計(jì)算機(jī)上運(yùn)行,通過它們之間的分工合作來實(shí)現(xiàn)一個(gè)完整的功能。對(duì)于這種模式而言其中一部分需要作為服務(wù)器,用來響應(yīng)并為客戶提供固定的服務(wù); 另一部分則作為客戶機(jī)程序用來向服務(wù)器提出請(qǐng)求或要求某種服務(wù)。</p><p>  在此“服務(wù)器”是指能在網(wǎng)絡(luò)上提供

32、服務(wù)的任何程序。服務(wù)器接受網(wǎng)絡(luò)上的請(qǐng)求,完成服務(wù)后將結(jié)果返回給申請(qǐng)者。對(duì)于簡單的服務(wù),把每個(gè)請(qǐng)求用一個(gè)IP數(shù)據(jù)報(bào)發(fā)給服務(wù)器,服務(wù)器用另一個(gè)數(shù)據(jù)報(bào)返回響應(yīng)。</p><p>  客 戶 機(jī) 服 務(wù) 器</p><p>  圖2-1 客戶機(jī)/服務(wù)器模型示意圖</p><p>

33、  客戶機(jī)和服務(wù)器都是獨(dú)立的計(jì)算機(jī)。當(dāng)一臺(tái)連入網(wǎng)絡(luò)的計(jì)算機(jī)向其他計(jì)算機(jī)提供各種網(wǎng)絡(luò)服務(wù)(如數(shù)據(jù)、文件的共享等)時(shí),它就被叫做服務(wù)器。而那些用于訪問服務(wù)器資料的計(jì)算機(jī)則被叫做客戶機(jī)。嚴(yán)格說來,客戶機(jī)/服務(wù)器模型并不是從物理分布的角度來定義,它所體現(xiàn)的是一種網(wǎng)絡(luò)數(shù)據(jù)訪問的實(shí)現(xiàn)方式。采用這種結(jié)構(gòu)的系統(tǒng)目前應(yīng)用非常廣泛。如賓館、酒店的客房登一記、結(jié)算系統(tǒng),超市的POS系統(tǒng),銀行、郵電的網(wǎng)絡(luò)系統(tǒng)等。</p><p>  2

34、.2.NET Framework簡介</p><p>  籠統(tǒng)的講.NET是由微軟公司設(shè)計(jì)開發(fā)的一種統(tǒng)一的開發(fā)平臺(tái)。</p><p>  微軟公司官方的定義是:Microsoft® .NET 是 Microsoft XML Web services 平臺(tái)。XML Web services 允許應(yīng)用程序通過 Internet 進(jìn)行通訊和共享數(shù)據(jù),而不管所采用的是哪種操作系統(tǒng)、設(shè)備或

35、編程語言。Microsoft .NET 平臺(tái)提供創(chuàng)建 XML Web services 并將這些服務(wù)集成在一起之所需。對(duì)個(gè)人用戶的好處是無縫的、吸引人的體驗(yàn)。</p><p>  .NET開發(fā)框架的幾個(gè)主要組成部分:首先是整個(gè)開發(fā)框架的基礎(chǔ),即通用語言運(yùn)行時(shí)以及它所提供的一組基礎(chǔ)類庫;在開發(fā)技術(shù)方面,.NET提供了全新的數(shù)據(jù)庫訪問技術(shù)ADO .NET,以及網(wǎng)絡(luò)應(yīng)用開發(fā)技術(shù)ASP .NET和Windows編程技術(shù)W

36、in Forms;在開發(fā)語言方面,.NET提供了VB,VC++,C#, Jscript等多種語言支持;而Visual Studio .NET則是全面支持.NET的開發(fā)工具。</p><p>  通用語言運(yùn)行時(shí),即Common Language Runtime 。Microsoft .NET 給開發(fā)人員帶來了一種全新的開發(fā)框架,而通用語言運(yùn)行時(shí)則處于這個(gè)框架的最低層,是這個(gè)框架的基礎(chǔ)。開發(fā)人員對(duì)于所謂的C運(yùn)行時(shí)、V

37、B運(yùn)行時(shí)、Jave虛擬機(jī)這些概念已經(jīng)非常熟悉了,而通用語言運(yùn)行時(shí)則為多種語言提供了一種統(tǒng)一的運(yùn)行環(huán)境。另外它還提供了更多的功能和特性,比如統(tǒng)一和簡化的編程模型,用戶不必迷惑于Win32 API和COM;避免了DLL的版本和更新問題(常稱為DLL地獄),從而大大簡化了應(yīng)用程序的發(fā)布和升級(jí);多種語言之間的交互,例如我們甚至可以在VB中使用C++編寫的類;自動(dòng)的內(nèi)存和資源管理等等。Microsoft .NET正是基于通用語言運(yùn)行時(shí),實(shí)現(xiàn)了這些

38、開發(fā)人員夢(mèng)寐以求的功能。</p><p>  基于通用語言運(yùn)行時(shí)開發(fā)的代碼稱為受控代碼,它的運(yùn)行步驟大體如下:首先使用一種通用語言運(yùn)行時(shí)支持的編程語言編寫源代碼,然后使用針對(duì)通用語言運(yùn)行時(shí)的編譯器生成獨(dú)立于機(jī)器的微軟中間語言(Microsoft Intermediate Language),同時(shí)產(chǎn)生運(yùn)行所需的元數(shù)據(jù),在代碼運(yùn)行時(shí)再使用即時(shí)編譯器(Just In Time Compiler)生成相應(yīng)的機(jī)器代碼來執(zhí)行

39、。</p><p>  當(dāng)然對(duì)于開發(fā)者而言,他們除了關(guān)心通用語言運(yùn)行時(shí)提供那么多新特性外,它究竟給開發(fā)者提供了什么樣的編程接口,這就是基礎(chǔ)類庫(Base Class Library)。這組基礎(chǔ)類庫包括了從輸入輸出到數(shù)據(jù)訪問等各方面,提供了一個(gè)統(tǒng)一的面向?qū)ο蟮?、層次化的、可擴(kuò)展的編程接口。它使用一種點(diǎn)號(hào)分隔的方法,使得查找和使用類庫非常容易。例如基礎(chǔ)類庫中的根,它的命名空間是System,提供數(shù)據(jù)訪問的類庫的命名空

40、間是System.Data。在使用時(shí),開發(fā)者只需在自己的應(yīng)用中添加所需的基礎(chǔ)類庫的引用,然后就可以使用這個(gè)類庫中的所有方法、屬性等等。跟傳統(tǒng)的Windows編程相比,使用和擴(kuò)展基礎(chǔ)類庫都非常容易,這使得開發(fā)者能夠高效、快速的構(gòu)建基于下一代互聯(lián)網(wǎng)的網(wǎng)絡(luò)應(yīng)用。</p><p>  幾乎所有的應(yīng)用程序都需要訪問從簡單的文本文件到大型的關(guān)系型數(shù)據(jù)庫等各種不同類型的數(shù)據(jù) 。在Microsoft .NET中訪問數(shù)據(jù)庫的技術(shù)是

41、ADO .NET。ADO .NET提供了一組用來連接到數(shù)據(jù)庫,運(yùn)行命令,返回記錄集的類庫,與從前的ADO(ActiveX Data Object)相比,Connection和Command對(duì)象很類似,而ADO .NET的革新主要體現(xiàn)在如下幾個(gè)方面:</p><p>  首先,ADO .NET提供了對(duì)XML的強(qiáng)大支持,這也是ADO .NET的一個(gè)主要設(shè)計(jì)目標(biāo)。在ADO .NET中通過XMLReader,XMLWri

42、ter, XMLNavigator, XMLDocument等可以方便的創(chuàng)建和使用XML數(shù)據(jù),并且支持W3C 的 XSLT、DTD、XDR等標(biāo)準(zhǔn)。ADO .NET對(duì)XML的支持也為XML成為Microsoft .NET中數(shù)據(jù)交換的統(tǒng)一格式提供了基礎(chǔ)。</p><p>  其次,ADO .NET引入了DataSet的概念,這是一個(gè)駐于內(nèi)存的數(shù)據(jù)緩沖區(qū),它提供了數(shù)據(jù)的關(guān)系型視圖。不管數(shù)據(jù)來源于一個(gè)關(guān)系型的數(shù)據(jù)庫,還是

43、來源于一個(gè)XML文檔,我們都可以用一個(gè)統(tǒng)一的編程模型來創(chuàng)建和使用它。它替代了原有的Recordset的對(duì)象,提高了程序的交互性和可擴(kuò)展性,尤其適合于分布式的應(yīng)用場(chǎng)合。</p><p>  另外,ADO .NET中還引入了一些新的對(duì)象,例如DataReader可以用來高效率的讀取數(shù)據(jù),產(chǎn)生一個(gè)只讀的記錄集等等。簡而言之,ADO .NET通過一系列新的對(duì)象和編程模型,并與XML緊密結(jié)合,使得在Microsoft .N

44、ET中的數(shù)據(jù)操作十分方便和高效。</p><p>  傳統(tǒng)的基于Windows的應(yīng)用(Win Forms),它仍然是Microsoft .NET戰(zhàn)略中不可或缺的一部分。在Microsoft .NET中開發(fā)傳統(tǒng)的基于Windows的應(yīng)用程序時(shí),除了可以利用現(xiàn)有的技術(shù)例如ActiveX控件以及豐富的Windows接口外,還可以基于通用語言運(yùn)行時(shí)開發(fā),可以使用ADO .NET、網(wǎng)絡(luò)服務(wù)等,這樣也可以實(shí)現(xiàn)諸如避免DLL地

45、獄、多語言支持等.NET的新特性。從上面的介紹中我們已經(jīng)知道Microsoft .NET開發(fā)框架支持多種語言,在目前的測(cè)試版中已經(jīng)支持 VB,C++,C#和Jscript四種語言以及它們之間的深層次交互。而且微軟支持第三方生產(chǎn)針對(duì)Microsoft .NET的編譯器和開發(fā)工具,這也就是說幾乎所有市場(chǎng)上的編程語言都有可能應(yīng)用于Microsoft .NET開發(fā)框架。這樣開發(fā)者可以任意選擇自己喜愛的語言,這種開放和交互的特性正是開發(fā)者所熱愛的

46、。</p><p>  需要特別指出的是,微軟在Microsoft .NET中推出了全新的C#語言,這種全新的面向?qū)ο蟮恼Z言使得開發(fā)者可以快速的構(gòu)建從底層系統(tǒng)級(jí)到高層商業(yè)組件的不同應(yīng)用。C#在保證了強(qiáng)大的功能和靈活性的同時(shí),給C和C++帶來了類似于VB的快速開發(fā),并且它還針對(duì).NET作了特別設(shè)計(jì),比如C#允許XML數(shù)據(jù)直接映射為它的數(shù)據(jù)類型等等,這些特性結(jié)合起來使得C#成為優(yōu)秀的下一代網(wǎng)絡(luò)編程語言。</p&

47、gt;<p>  與此同時(shí)Microsoft .NET對(duì)原有的VB和C++也做了很大的改進(jìn),使得它們更加適應(yīng)Microsoft .NET開發(fā)框架的需求。例如在Visual Basic .NET中增加了繼承等面向?qū)ο蟮奶匦裕Y(jié)構(gòu)化的出錯(cuò)處理等等;可管理的C++擴(kuò)展,大大提高了利用C++來開發(fā)Microsoft .NET應(yīng)用的效率等。</p><p>  2.3Visual Studio 2005簡介&

48、lt;/p><p>  Visual Studio.NET是.NET平臺(tái)下最為強(qiáng)大的開發(fā)工具,無論是軟件服務(wù)商,還是企業(yè)應(yīng)用程序的部署與發(fā)布,Visual Studio.NET都可以提供近乎完美的解決方案。Visual Studio.NET提供了包括設(shè)計(jì)、編碼、編譯調(diào)試、數(shù)據(jù)庫聯(lián)接操作等基本功能和基于開放架構(gòu)的服務(wù)器組件開發(fā)平臺(tái)、企業(yè)開發(fā)工具和應(yīng)用程序重新發(fā)布工具以及性能評(píng)測(cè)報(bào)告等高級(jí)功能。</p>&

49、lt;p>  2.3.1Visual Studio 2005特性簡介</p><p>  Visual Studio .NET 是一套完整的開發(fā)工具,用于生成 ASP Web 應(yīng)用程序、XML Web services、桌面應(yīng)用程序和移動(dòng)應(yīng)用程序。Visual Basic .NET、Visual C++ .NET、Visual C# .NET 和 Visual J# .NET 全都使用相同的集成開發(fā)環(huán)境 (

50、IDE),該環(huán)境允許它們共享工具并有助于創(chuàng)建混合語言解決方案。另外,這些語言利用了 .NET Framework 的功能,此框架提供對(duì)簡化 ASP Web 應(yīng)用程序和 XML Web services 開發(fā)的關(guān)鍵技術(shù)的訪問。</p><p>  Visual Studio 2005的優(yōu)點(diǎn)是:</p><p>  領(lǐng)先于業(yè)界的數(shù)據(jù)庫工具。</p><p>  強(qiáng)健而靈

51、活的軟件建模。</p><p>  高效的體系結(jié)構(gòu)指導(dǎo)。</p><p><b>  關(guān)鍵測(cè)試功能。</b></p><p><b>  集成的源代碼控制。</b></p><p>  2.3.2Visual Studio 2005主要組件及功能菜單介紹</p><p>  

52、在Visual Studio 2005中主要包括下面的組件:</p><p>  文本編輯器:主要用于代碼的編寫。</p><p>  界面設(shè)計(jì)器:主要用于設(shè)計(jì)窗體和頁面的外觀。</p><p>  工具箱:主要用于設(shè)計(jì)窗體和頁面時(shí)添加各種控件。</p><p>  資源編輯器:主要用于項(xiàng)目資源的修改和設(shè)計(jì)。</p><p

53、>  屬性窗口:主要用于修改各個(gè)控件的屬性值。</p><p>  輸出窗口:主要用于顯示命令行窗口的輸出結(jié)果。</p><p>  錯(cuò)誤列表:主要用于提示程序的各種錯(cuò)誤。</p><p>  調(diào)試器: 主要用于對(duì)程序的調(diào)試。比如斷點(diǎn)測(cè)試等。</p><p>  2.4Windows socket 編程原理</p><

54、;p>  2.4.1Windows socket 介紹</p><p>  Windows下網(wǎng)絡(luò)編程的規(guī)范-Windows Sockets是Windows下得到廣泛應(yīng)用的、開放的、支持多種協(xié)議的網(wǎng)絡(luò)編程接口。1991年到現(xiàn)在,經(jīng)過不斷完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成為Windows網(wǎng)絡(luò)編程的事實(shí)上的標(biāo)準(zhǔn)。 </p>

55、<p>  Windows Sockets規(guī)范以U.C. Berkeley大學(xué)BSD UNIX中流行的Socket接口為范例定義了一套Microsoft Windows下網(wǎng)絡(luò)編程接口。它不僅包含了人們所熟悉的Berkeley Socket風(fēng)格的庫函數(shù);也包含了一組針對(duì)Windows的擴(kuò)展庫函數(shù),以使程序員能充分地利用Windows消息驅(qū)動(dòng)機(jī)制進(jìn)行編程。Windows Sockets規(guī)范本意在于提供給應(yīng)用程序開發(fā)者一套簡單的AP

56、I,并讓各家網(wǎng)絡(luò)軟件供應(yīng)商共同遵守。此外,在一個(gè)特定版本W(wǎng)indows的基礎(chǔ)上,Windows Sockets也定義了一個(gè)二進(jìn)制接口(ABI),以此來保證應(yīng)用Windows Sockets API的應(yīng)用程序能夠在任何網(wǎng)絡(luò)軟件供應(yīng)商的符合Windows Sockets協(xié)議的實(shí)現(xiàn)上工作。因此這份規(guī)范定義了應(yīng)用程序開發(fā)者能夠使用,并且網(wǎng)絡(luò)軟件供應(yīng)商能夠?qū)崿F(xiàn)的一套庫函數(shù)調(diào)用和相關(guān)語義。遵守這套Windows Sockets規(guī)范的網(wǎng)絡(luò)軟件,我們稱

57、之為Windows Sockets兼容的,而Windows Sockets兼容實(shí)現(xiàn)的提供者,我們稱之為Windows Sockets提供者。一</p><p>  圖2-2 Winsock 關(guān)系圖</p><p>  通信的基礎(chǔ)是套接口(Socket),一個(gè)套接口是通訊的一端。在這一端上你可以找到與其對(duì)應(yīng)的一個(gè)名字。一個(gè)正在被使用的套接口都有它的類型和與其相關(guān)的進(jìn)程。套接口存在于通訊域

58、中。通訊域是為了處理一般的線程通過套接口通訊而引進(jìn)的一種抽象概念。套接口通常和同一個(gè)域中的套接口交換數(shù)據(jù)(數(shù)據(jù)交換也可能穿越域的界限,但這時(shí)一定要執(zhí)行某種解釋程序)。Windows Sockets規(guī)范支持單一的通訊域,即Internet域。各種進(jìn)程使用這個(gè)域互相之間用Internet協(xié)議族來進(jìn)行通訊(Windows Sockets 1.1以上的版本支持其他的域,例如Windows Sockets 2.2)。套接口可以根據(jù)通訊性質(zhì)分類;這

59、種性質(zhì)對(duì)于用戶是可見的。應(yīng)用程序一般僅在同一類的套接口間通訊。不過只要底層的通訊協(xié)議允許,不同類型的套接口間也照樣可以通訊。用戶目前可以使用兩種套接口,即流套接口和數(shù)據(jù)報(bào)套接口。流套接口提供了雙向的,有序的,無重復(fù)并且無記錄邊界的數(shù)據(jù)流服務(wù)。數(shù)據(jù)報(bào)套接口支持雙向的數(shù)據(jù)流,但并不保證是可靠,有序,無重復(fù)的。也就是說,一個(gè)從數(shù)據(jù)報(bào)套接口接收信息的進(jìn)程有可能發(fā)現(xiàn)信息重復(fù)了,或者和發(fā)出時(shí)的順序不</p><p>  一個(gè)

60、在建立分布式應(yīng)用時(shí)最常用的范例便是客戶機(jī)/服務(wù)器模型。在這種方案中客戶應(yīng)用程序向服務(wù)器程序請(qǐng)求服務(wù)。這種方式隱含了在建立客戶機(jī)/服務(wù)器間通訊時(shí)的非對(duì)稱性??蛻魴C(jī)/服務(wù)器模型工作時(shí)要求有一套為客戶機(jī)和服務(wù)器所共識(shí)的慣例來保證服務(wù)能夠被提供(或被接受)。這一套慣例包含了一套協(xié)議。它必須在通訊的兩頭都被實(shí)現(xiàn)。根據(jù)不同的實(shí)際情況,協(xié)議可能是對(duì)稱的或是非對(duì)稱的。在對(duì)稱的協(xié)議中,每一方都有可能扮演主從角色;在非對(duì)稱協(xié)議中,一方被不可改變地認(rèn)為是主機(jī)

61、,而另一方則是從機(jī)。一個(gè)對(duì)稱協(xié)議的例子是Internet中用于終端仿真的TELNET。而非對(duì)稱協(xié)議的例子是Internet中的FTP。無論具體的協(xié)議是對(duì)稱的或是非對(duì)稱的,當(dāng)服務(wù)被提供時(shí)必然存在"客戶進(jìn)程"和"服務(wù)進(jìn)程"。一個(gè)服務(wù)程序通常在一個(gè)眾所周知的地址監(jiān)聽對(duì)服務(wù)的請(qǐng)求,也就是說,服務(wù)進(jìn)程一直處于休眠狀態(tài),直到一個(gè)客戶對(duì)這個(gè)服務(wù)的地址提出了連接請(qǐng)求。在這個(gè)時(shí)刻,服務(wù)程序被"驚醒&quo

62、t;并且為客戶提供服務(wù)-對(duì)客戶的請(qǐng)求做出適當(dāng)?shù)姆磻?yīng)。雖然基于連接的服務(wù)是設(shè)計(jì)客戶機(jī)/服務(wù)器應(yīng)用程序時(shí)的標(biāo)準(zhǔn),但有些服務(wù)也是可以通過數(shù)據(jù)報(bào)套接口提供的。</p><p>  數(shù)據(jù)報(bào)套接口可以用來向許多系統(tǒng)支持的網(wǎng)絡(luò)發(fā)送廣播數(shù)據(jù)包。要實(shí)現(xiàn)這種功能,網(wǎng)絡(luò)本身必須支持廣播功能,因?yàn)橄到y(tǒng)軟件并不提供對(duì)廣播功能的任何模擬。廣播信息將會(huì)給網(wǎng)絡(luò)造成極重的負(fù)擔(dān),因?yàn)樗鼈円缶W(wǎng)絡(luò)上的每臺(tái)主機(jī)都為它們服務(wù),所以發(fā)送廣播數(shù)據(jù)包的能力被限

63、制于那些用顯式標(biāo)記了允許廣播的套接口中。廣播通常是為了如下兩個(gè)原因而使用的:1. 一個(gè)應(yīng)用程序希望在本地網(wǎng)絡(luò)中找到一個(gè)資源,而應(yīng)用程序?qū)υ撡Y源的地址又沒有任何先驗(yàn)的知識(shí)。2. 一些重要的功能,例如路由要求把它們的信息發(fā)送給所有可以找到的鄰機(jī)。被廣播信息的目的地址取決于這一信息將在何種網(wǎng)絡(luò)上廣播。Internet域中支持一個(gè)速記地址用于廣播-INADDR_BROADCAST。由于使用廣播以前必須捆綁一個(gè)數(shù)據(jù)報(bào)套接口,所以所有收到的廣播消息

64、都帶有發(fā)送者的地址和端口。</p><p>  Intel處理器的字節(jié)順序是和DEC VAX處理器的字節(jié)順序一致的。因此它與68000型處理器以及Internet的順序是不同的,所以用戶在使用時(shí)要特別小心以保證正確的順序。任何從Windows Sockets函數(shù)對(duì)IP地址和端口號(hào)的引用和傳送給Windows Sockets函數(shù)的IP地址和端口號(hào)均是按照網(wǎng)絡(luò)順序組織的,這也包括了sockaddr_in結(jié)構(gòu)這一數(shù)據(jù)類

65、型中的IP地址域和端口域(但不包括sin_family域)??紤]到一個(gè)應(yīng)用程序通常用與"時(shí)間"服務(wù)對(duì)應(yīng)的端口來和服務(wù)器連接,而服務(wù)器提供某種機(jī)制來通知用戶使用另一端口。因此getservbyname()函數(shù)返回的端口號(hào)已經(jīng)是網(wǎng)絡(luò)順序了,可以直接用來組成一個(gè)地址,而不需要進(jìn)行轉(zhuǎn)換。然而如果用戶輸入一個(gè)數(shù),而且指定使用這一端口號(hào),應(yīng)用程序則必須在使用它建立地址以前,把它從主機(jī)順序轉(zhuǎn)換成網(wǎng)絡(luò)順序(使用htons()函數(shù))。

66、相應(yīng)地,如果應(yīng)用程序希望顯示包含于某一地址中的端口號(hào)(例如從getpeername()函數(shù)中返回的),這一端口號(hào)就必須在被顯示前從網(wǎng)絡(luò)順序轉(zhuǎn)換到主機(jī)順序(使用ntohs()函數(shù))。由于Intel處理器和Inter</p><p>  在MFC中MS為套接口提供了相應(yīng)的類CAsyncSocket和CSocket,CAsyncSocket提供基于異步通信的套接口封裝功能,CSocket則是由CAsyncSocket派

67、生,提供更加高層次的功能,例如可以將套接口上發(fā)送和接收的數(shù)據(jù)和一個(gè)文件對(duì)象(CSocketFile)關(guān)聯(lián)起來,通過讀寫文件來達(dá)到發(fā)送和接收數(shù)據(jù)的目的,此外CSocket提供的通信為同步通信,數(shù)據(jù)未接收到或是未發(fā)送完之前調(diào)用不會(huì)返回。此外通過MFC類開發(fā)者可以不考慮網(wǎng)絡(luò)字節(jié)順序和忽略更多的通信細(xì)節(jié)。</p><p>  在一次網(wǎng)絡(luò)通信/連接中有以下幾個(gè)參數(shù)需要被設(shè)置:本地IP地址 - 本地端口號(hào) - 對(duì)方端口號(hào) -

68、 對(duì)方IP地址。左邊兩部分稱為一個(gè)半關(guān)聯(lián),當(dāng)與右邊兩部分建立連接后就稱為一個(gè)全關(guān)聯(lián)。在這個(gè)全關(guān)聯(lián)的套接口上可以雙向的交換數(shù)據(jù)。如果是使用無連接的通信則只需要建立一個(gè)半關(guān)聯(lián),在發(fā)送和接收時(shí)指明另一半的參數(shù)就可以了,所以可以說無連接的通信是將數(shù)據(jù)發(fā)送到另一臺(tái)主機(jī)的指定端口。此外不論是有連接還是無連接的通信都不需要雙方的端口號(hào)相同。</p><p>  在創(chuàng)建CAsyncSocket對(duì)象時(shí)通過調(diào)用 BOOL CAsyn

69、cSocket::Create( UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, LPCTSTR lpszSocketAddress = NULL )通過指明lEvent所包含的標(biāo)記來確定需要異步處理的事件,對(duì)于指明的相關(guān)事

70、件的相關(guān)函數(shù)調(diào)用都不需要等待完成后才返回,函數(shù)會(huì)馬上返回然后在完成任務(wù)后發(fā)送事件通知,并利用重載以下成員函數(shù)來處理各種網(wǎng)絡(luò)事件如表2-1所示。</p><p>  表2-1 消息存儲(chǔ)表</p><p>  我們看到重載的函數(shù)中都有一個(gè)參數(shù)nErrorCode,為零則表示正常完成,非零則表示錯(cuò)誤。通過int CAsyncSocket::GetLastError()可以得到錯(cuò)誤值。 下面我們

71、看看套接口類所提供的一些功能,通過這些功能我們可以方便的建立網(wǎng)絡(luò)連接和發(fā)送數(shù)據(jù)。 </p><p>  BOOL CAsyncSocket::Create( UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOS

72、E, LPCTSTR lpszSocketAddress = NULL );用于創(chuàng)建一個(gè)本地套接口,其中nSocketPort為使用的端口號(hào),為零則表示由系統(tǒng)自動(dòng)選擇,通常在客戶端都使用這個(gè)選擇。nSocketType為使用的協(xié)議族,SOCK_STREAM表明使用有連接的服務(wù),SOCK_DGRAM表明使用無連接的數(shù)據(jù)報(bào)服務(wù)。lpszSocketAddress為本地的IP地址,可以使用點(diǎn)分法表示如10.1.1.3。 </p>

73、<p>  BOOL CAsyncSocket::Bind( UINT nSocketPort, LPCTSTR lpszSocketAddress = NULL )作為等待連接方時(shí)產(chǎn)生一個(gè)網(wǎng)絡(luò)半關(guān)聯(lián),或者是使用UDP協(xié)議時(shí)產(chǎn)生一個(gè)網(wǎng)絡(luò)半關(guān)聯(lián)。 </p><p>  BOOL CAsyncSocket::Listen( int nConnectionBacklog = 5 )作為等待連接方時(shí)指明同時(shí)可

74、以接受的連接數(shù),請(qǐng)注意不是總共可以接受的連接數(shù)。 </p><p>  BOOL CAsyncSocket::Accept( CAsyncSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL )作為等待連接方將等待連接建立,當(dāng)連接建立后一個(gè)新的套接口將被創(chuàng)建,該套接口將會(huì)被用于通信。 </p&

75、gt;<p>  BOOL CAsyncSocket::Connect( LPCTSTR lpszHostAddress, UINT nHostPort );作為連接方發(fā)起與等待連接方的連接,需要指明對(duì)方的IP地址和端口號(hào)。 </p><p>  void CAsyncSocket::Close( );關(guān)閉套接口。 </p><p>  int CAsyncSocket::

76、Send( const void* lpBuf, int nBufLen, int nFlags = 0 )int CAsyncSocket::Receive( void* lpBuf, int nBufLen, int nFlags = 0 );在建立連接后發(fā)送和接收數(shù)據(jù),nFlags為標(biāo)記位,雙方需要指明相同的標(biāo)記。 </p><p>  int CAsyncSocket::SendTo( const vo

77、id* lpBuf, int nBufLen, UINT nHostPort, LPCTSTR lpszHostAddress = NULL, int nFlags = 0 )int CAsyncSocket::ReceiveFrom( void* lpBuf, int nBufLen, CString& rSocketAddress, UINT& rSocketPort, int nFlags = 0 );對(duì)于無連接

78、通信發(fā)送和接收數(shù)據(jù),需要指明對(duì)方的IP地址和端口號(hào),nFlags為標(biāo)記位,雙方需要指明相同的標(biāo)記。 </p><p>  我們可以看到大多數(shù)的函數(shù)都返回一個(gè)布爾值表明是否成功。如果發(fā)生錯(cuò)誤可以通過int CAsyncSocket::GetLastError()得到錯(cuò)誤值。 由于CSocket由CAsyncSocket派生所以擁有CAsyncSocket的所有功能,此外你可以通過BOOL CSocket::Crea

79、te( UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, LPCTSTR lpszSocketAddress = NULL )來創(chuàng)建套接口,這樣創(chuàng)建的套接口沒有辦法異步處理事件,所有的調(diào)用都必需完成后才會(huì)返回。</p><p>  在上面的介紹中我們看到MFC提供的套接口類屏蔽了大多數(shù)的細(xì)節(jié),我們只需要做很少的工作就可以開發(fā)出利用網(wǎng)絡(luò)進(jìn)行通信的軟件。<

80、/p><p>  2.4.2利用Winsock 進(jìn)行無連接的通訊</p><p>  WinSock提供了對(duì)UDP(用戶數(shù)據(jù)報(bào)協(xié)議)的支持,通過UDP協(xié)議我們可以向指定IP地址的主機(jī)發(fā)送數(shù)據(jù),同時(shí)也可以從指定IP地址的主機(jī)接收數(shù)據(jù),發(fā)送和接收方處于相同的地位沒有主次之分。利用CSocket操縱無連接的數(shù)據(jù)發(fā)送很簡單,首先生成一個(gè)本地套接口(需要指明SOCK_DGRAM標(biāo)記),然后利用下面的方法

81、:int CAsyncSocket::SendTo( const void* lpBuf, int nBufLen, UINT nHostPort, LPCTSTR lpszHostAddress = NULL, int nFlags = 0 )發(fā)送數(shù)。intCAsyncSocket::ReceiveFrom( void* lpBuf, int nBufLen, CString& rSocketAddress, UINT&

82、; rSocketPort, int nFlags = 0 )接收數(shù)據(jù)。函數(shù)調(diào)用順序如圖2-3所示。</p><p>  圖2-3 無連接通訊示意圖</p><p>  利用UDP協(xié)議發(fā)送和接收都可以是雙向的,就是說任何一個(gè)主機(jī)都可以發(fā)送和接收數(shù)據(jù)。但是UDP協(xié)議是無連接的,所以發(fā)送的數(shù)據(jù)不一定能被接收,此外接收的順序也有可能與發(fā)送順序不一致。</p><p> 

83、 2.4.3利用Windows socket 進(jìn)行有連接的通訊</p><p>  WinSock提供了對(duì)TCP(傳輸控制協(xié)議)的支持,通過TCP協(xié)議我們可以與指定IP地址的主機(jī)建立,同時(shí)利用建立的連接可以雙向的交換數(shù)據(jù)。利用CSocket操縱有連接數(shù)據(jù)交換很簡單,但是在有連接的通信中必需有一方扮演服務(wù)器的角色等待另一方(客戶方)的連接請(qǐng)求,所以服務(wù)器方需要建立一個(gè)監(jiān)聽套接口,然后在此套接口上等待連接。當(dāng)連接建立

84、后會(huì)產(chǎn)生一個(gè)新的套接口用于通信。而客戶方在創(chuàng)建套接口后只需要簡單的調(diào)用連接函數(shù)就可以創(chuàng)建連接。對(duì)于有連接的通信不論是數(shù)據(jù)的發(fā)送還是發(fā)送與接收的順序都是有保證的。雙方的函數(shù)調(diào)用順序如圖2-4所示。</p><p>  圖2-5 有連接通訊示意圖</p><p>  2.5SQL server 簡介</p><p>  SQL Server是由Microsoft開發(fā)和

85、推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的,并于1988年推出了第一個(gè)OS/2版本。 SQL Server近年來不斷更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用戶見面;SQL Server 2000是Microsoft公司于2000年推出的最新版本。</p>

86、<p>  2.5.1SQL server 特點(diǎn)</p><p>  真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。</p><p>  圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。</p><p>  豐富的編程接口工具,為用戶進(jìn)行程序設(shè)計(jì)提供了更大的選擇余地。</p><p>  SQL Server與Windows NT完全集成,利

87、用了NT的許多功能,如發(fā)送和接受消息,管理登錄安全性等。SQL Server也可以很好地與Microsoft BackOffice產(chǎn)品集成。</p><p>  具有很好的伸縮性,可跨越從運(yùn)行Windows 95/98的膝上型電腦到運(yùn)行Windows 2000的大型多處理器等多種平臺(tái)使用。</p><p>  對(duì)Web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到Web頁面上。 &l

88、t;/p><p>  SQL Server提供數(shù)據(jù)倉庫功能,這個(gè)功能只在Oracle和其他更昂貴的DBMS中才有。</p><p>  2.5.2SQL server 系統(tǒng)數(shù)據(jù)庫簡介</p><p>  SQL Server 2005有4個(gè)系統(tǒng)數(shù)據(jù)庫 </p><p>  Master數(shù)據(jù)庫是SQL Server系統(tǒng)最重要的數(shù)據(jù)庫,它記錄了SQL

89、 Server系統(tǒng)的所有系統(tǒng)信息。這些系統(tǒng)信息包括所有的登錄信息、系統(tǒng)設(shè)置信息、SQL Server的初始化信息和其它系統(tǒng)數(shù)據(jù)庫及用戶數(shù)據(jù)庫的相關(guān)信息。 </p><p>  Model數(shù)據(jù)庫是所有用戶數(shù)據(jù)庫和Tempdb數(shù)據(jù)庫的模板數(shù)據(jù)庫,它含有Master數(shù)據(jù)庫所有系統(tǒng)表的子集,這些系統(tǒng)數(shù)據(jù)庫是每個(gè)用戶定義數(shù)據(jù)庫需要的。 </p><p>  Msdb數(shù)據(jù)庫是代理服務(wù)數(shù)據(jù)庫,為其警報(bào)、

90、任務(wù)調(diào)度和記錄操作員的操作提供存儲(chǔ)空間。 </p><p>  Tempdb是一個(gè)臨時(shí)數(shù)據(jù)庫,它為所有的臨時(shí)表、臨時(shí)存儲(chǔ)過程及其它臨時(shí)操作提供存儲(chǔ)空間。 </p><p>  2.5.3 SQL server 系統(tǒng)表簡介</p><p>  系統(tǒng)目錄是由描述SQL Server 系統(tǒng)的數(shù)據(jù)庫、基表、視圖和索引等對(duì)象的結(jié)構(gòu)的系統(tǒng)表組成。SQL Server 經(jīng)常訪問系

91、統(tǒng)目錄,檢索系統(tǒng)正常運(yùn)行所需的必要信息。 </p><p>  Sysobjects表</p><p>  SQL Server 的主系統(tǒng)表sysobjects出現(xiàn)在每個(gè)數(shù)據(jù)庫中,它對(duì)每個(gè)數(shù)據(jù)庫對(duì)象含有一行記錄。</p><p>  Syscolumns表</p><p>  系統(tǒng)表syscolumns出現(xiàn)在master數(shù)據(jù)庫和每個(gè)用戶自定義

92、的數(shù)據(jù)庫中,它對(duì)基表或者視圖的每個(gè)列和存儲(chǔ)過程中的每個(gè)參數(shù)含有一行記錄。</p><p>  Sysindexes表</p><p>  系統(tǒng)表sysindexes出現(xiàn)在master數(shù)據(jù)庫和每個(gè)用戶自定義的數(shù)據(jù)庫中,它對(duì)每個(gè)索引和沒有聚簇索引的每個(gè)表含有一行記錄,它還對(duì)包括文本/圖像數(shù)據(jù)的每個(gè)表含有一行記錄。 </p><p><b>  Sysusers

93、表</b></p><p>  系統(tǒng)表sysusers出現(xiàn)在master數(shù)據(jù)庫和每個(gè)用戶自定義的數(shù)據(jù)庫中,它對(duì)整個(gè)數(shù)據(jù)庫中的每個(gè)Windows NT用戶、Windows NT用戶組、SQL Server 用戶或者SQL Server 角色含有一行記錄。</p><p>  Sysdatabases表</p><p>  系統(tǒng)表sysdatabases對(duì)S

94、QL Server 系統(tǒng)上的每個(gè)系統(tǒng)數(shù)據(jù)庫和用戶自定義的數(shù)據(jù)庫含有一行記錄,它只出現(xiàn)在master數(shù)據(jù)庫中。</p><p>  Sysdepends表</p><p>  系統(tǒng)表Sysdepends對(duì)表、視圖和存儲(chǔ)過程之間的每個(gè)依賴關(guān)系含有一行記錄,它出現(xiàn)在master數(shù)據(jù)庫和每個(gè)用戶自定義的數(shù)據(jù)庫中。</p><p>  Sysconstraints表</

95、p><p>  系統(tǒng)表sysconstraints對(duì)使用CREATE TABLE或者ALTER TABLE語句為數(shù)據(jù)庫對(duì)象定義的每個(gè)完整性約束含有一行記錄,它出現(xiàn)在master數(shù)據(jù)庫和每個(gè)用戶自定義的數(shù)據(jù)庫中。</p><p>  2.5.3SQL server 數(shù)據(jù)類型</p><p><b>  整型數(shù)據(jù)類型</b></p>&l

96、t;p>  整型數(shù)據(jù)類型是最常用的數(shù)據(jù)類型之一,它主要用來存儲(chǔ)數(shù)值,可以直接進(jìn)行數(shù)據(jù)運(yùn)算,而不必使用函數(shù)轉(zhuǎn)換。 </p><p>  int(integer):int(或integer)數(shù)據(jù)類型可以存儲(chǔ)從-231(-2,147,483,648)到231-1(2,147,483,647)范圍之間的所有正負(fù)整數(shù)。 </p><p>  Smallint:可以存儲(chǔ)從-215(-32,768

97、)到215-1(32,768)范圍之間的所有正負(fù)整數(shù) 。</p><p>  Tinyint:可以存儲(chǔ)從0到255范圍之間的所有正整數(shù)。</p><p><b>  字符數(shù)據(jù)類型 </b></p><p>  字符數(shù)據(jù)類型可以用來存儲(chǔ)各種字母、數(shù)字符號(hào)和特殊符號(hào)。</p><p>  Char:其定義形式為char(n

98、),每個(gè)字符和符號(hào)占用一個(gè)字節(jié)的存儲(chǔ)空間。 </p><p>  Varchar:其定義形式為varchar(n)。用char數(shù)據(jù)類型可以存儲(chǔ)長達(dá)255個(gè)字符的可變長度字符串 。</p><p>  Nchar:其定義形式為nchar(n)。 </p><p>  Nvarchar:其定義形式為nvarchar(n)。 </p><p>  

99、日期和時(shí)間數(shù)據(jù)類型 </p><p>  Datetime:用于存儲(chǔ)日期和時(shí)間的結(jié)合體 。它可以存儲(chǔ)從公元1753年1月1日零時(shí)起到公元9999年12月31日23時(shí)59分59秒之間的所有日期和時(shí)間 。</p><p>  Smalldatetime:與datetime數(shù)據(jù)類型類似,但其日期時(shí)間范圍較小,它存儲(chǔ)從1900年1月1日到2079年6月6日內(nèi)的日期。 </p><

100、;p>  Text:用于存儲(chǔ)大量文本數(shù)據(jù),其容量理論上為1到231-1(2,147,483,647)個(gè)字節(jié),但實(shí)際應(yīng)用時(shí)要根據(jù)硬盤的存儲(chǔ)空間而定。</p><p>  Ntext:與text數(shù)據(jù)類型類似,存儲(chǔ)在其中的數(shù)據(jù)通常是直接能輸出到顯示設(shè)備上的字符,顯示設(shè)備可以是顯示器、窗口或者打印機(jī)。</p><p>  Image:用于存儲(chǔ)照片、目錄圖片或者圖畫,其理論容量為231-1(2

101、,147,483,647)個(gè)字節(jié)。</p><p><b>  位數(shù)據(jù)類型 </b></p><p>  Bit:稱為位數(shù)據(jù)類型,其數(shù)據(jù)有兩種取值:0和1,長度為1字節(jié)。</p><p><b>  2.5本章小結(jié)</b></p><p>  本章是完成本項(xiàng)目所必需的理論技術(shù)基礎(chǔ)。通過本章的介紹,我

102、們明確了本項(xiàng)目中所采用的理論基礎(chǔ)和模型,利于理解后續(xù)章節(jié)。其實(shí)本章中每一個(gè)小節(jié)的知識(shí)都是博大精深的,在本文中沒有篇幅去詳細(xì)介紹,有興趣可以參看一些參考文獻(xiàn)和書籍。</p><p><b>  SQL語言與ADO</b></p><p>  3.1常用SQL語句簡介</p><p>  SQL是Structure Query Language的縮

103、寫,即結(jié)構(gòu)化查詢語言。SQL語言是專門為訪問數(shù)據(jù)庫而設(shè)計(jì)的結(jié)構(gòu)化語言,可以完成數(shù)據(jù)查詢、數(shù)據(jù)定義、數(shù)據(jù)操作和數(shù)據(jù)控制等操作。常用語句有:INSERT語句; UDPATE語句; DELETE語句; SELECT語句。</p><p><b>  INSERT語句</b></p><p>  INSERT語句的功能是在指定的表中插入一行新的。INSERT語句的基本語法結(jié)構(gòu)

104、如下: </p><p>  INSERT INTO <表名>[(<字段名1>[,<字段名2>…)]</p><p>  VALUES(<常量1>[,<常量2>]…)</p><p><b>  UPDATE語句</b></p><p>  UPDATE的功能是

105、在指定的表中修改滿足條件的記錄。UPDATE語句的基本語法結(jié)構(gòu)如下:</p><p>  UPDATE <表名> SET <列名>=<表達(dá)式>[,<列名>=<表達(dá)式>]…</p><p><b>  WHERE<條件></b></p><p><b>  DELE

106、TE語句</b></p><p>  DELETE語句的功能是刪除指定的表中滿足條件的記錄。DELETE語句的基本語法結(jié)構(gòu)如下:</p><p>  DELETE FROM <表名></p><p>  [WHERE <條件>]</p><p><b>  SELECT語句</b>&l

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論