摘 要:隨著計(jì)算機(jī)技術(shù)及互聯(lián)網(wǎng)技術(shù)在近幾年的普及,越來越多的方便了人們的生活,上網(wǎng)聊天的飛速發(fā)展,已成為很多人的生活的一部分,成為人們互相溝通的工具;大多數(shù)聊天室系統(tǒng)是通過使用ASP來開發(fā),由于固有的在ASP中的不足,導(dǎo)致程序員維護(hù)困難,導(dǎo)致網(wǎng)絡(luò)安全,網(wǎng)絡(luò)傳輸,降低后臺(tái)管理方面性能,采用ASP.net技術(shù)能更好地解決這些問題。用它來開發(fā)互動(dòng)網(wǎng)頁,不僅保留了原有的ASP的優(yōu)勢(shì),而且與用JAVA開發(fā)大型網(wǎng)站的后臺(tái)管理一樣的便利;因此,本文對(duì)ASP.NET和SQL Server數(shù)據(jù)庫(kù)技術(shù)在動(dòng)態(tài)網(wǎng)站開發(fā)中的應(yīng)用介紹對(duì)今后的類似應(yīng)用有著指導(dǎo)性作用。
關(guān)鍵詞:互聯(lián)網(wǎng);聊天室;數(shù)據(jù)庫(kù)
中圖分類號(hào):TP311.13 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2013) 22-0000-01
一、引言
Web(World Wide Web)是Internet的一個(gè)重要組成部分,促成這些計(jì)算機(jī)和它們的內(nèi)容可以方便的互相訪問。Web是一個(gè)客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。最常見的聊天室就是使用ASP.net技術(shù)[1]來實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)庫(kù)頁面的Web服務(wù)??梢暂^好地解決使用ASP.net帶來的網(wǎng)絡(luò)安全,網(wǎng)絡(luò)傳輸?shù)膯栴}。
本文介紹的是一種基于Web的在線聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),在SQL Server 2005[2]和ASP.NET的技術(shù)支撐下,完成了用戶登錄,修改用戶信息,用戶注冊(cè),聊天,信息查詢五個(gè)功能聊天。在后臺(tái)管理中,利用ADO.net實(shí)現(xiàn)后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng)設(shè)計(jì),能更加方便和有效的管理整個(gè)聊天室。
二、ASP.NET應(yīng)用程序的結(jié)構(gòu)設(shè)計(jì)[3]
應(yīng)用程序結(jié)構(gòu)設(shè)計(jì)是進(jìn)行ASP.NET應(yīng)用程序設(shè)計(jì)的第一步,一個(gè)合理的應(yīng)用程序結(jié)構(gòu),在軟件的穩(wěn)定性、安全性以及今后系統(tǒng)的維護(hù)操作,有非常大的幫助。
應(yīng)用程序的模式是一個(gè)很復(fù)雜而又很重要的概念,一個(gè)良好的應(yīng)用程序模式,可以極大地方便軟件的開發(fā)與維護(hù),并對(duì)系統(tǒng)性能提供充分保證,這里主要闡述應(yīng)用程序三層結(jié)構(gòu)模式。
在這種模式中,將應(yīng)用程序體系結(jié)構(gòu)劃分為表示、業(yè)務(wù)和數(shù)據(jù)三層。
(一)表示層
顯示用戶界面。這一般包括ASP.NET頁面和Windows窗體。大多數(shù)業(yè)務(wù)應(yīng)用程序均使用窗體的形式來構(gòu)建表示層。每個(gè)窗體包含很多字段,用于收集用戶輸入的字段及顯示低層輸出。基于用戶界面實(shí)現(xiàn)的兩類組件為:用戶界面加工組裝和用戶界面組件。
(二)業(yè)務(wù)層
業(yè)務(wù)層完成應(yīng)用服務(wù)功能。該層通常被用于.NET的編程語言實(shí)現(xiàn)的組件的一個(gè)或多個(gè)支撐。大型企業(yè)應(yīng)用程序一般圍繞構(gòu)建業(yè)務(wù)流程和業(yè)務(wù)組件的。這些概念通過含有大量實(shí)體、組件和界面的業(yè)務(wù)層來處理,主要包括:業(yè)務(wù)實(shí)體,工作流,業(yè)務(wù)組件,服務(wù)接口。
(三)數(shù)據(jù)層
數(shù)據(jù)層實(shí)現(xiàn)了訪問外部系統(tǒng)。本層使用的主要是ADO.NET技術(shù)。大多數(shù)應(yīng)用程序需要訪問存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)。這在數(shù)據(jù)層中的數(shù)據(jù)訪問組件負(fù)責(zé)存儲(chǔ)在這些數(shù)據(jù)庫(kù)中的數(shù)據(jù)是開放的業(yè)務(wù)層。此層用于以下兩部分組成:服務(wù)網(wǎng)關(guān)及數(shù)據(jù)訪問組件。
三、數(shù)據(jù)庫(kù)中SQL語句[4]
(一)查詢:SELECT * FROM table_Name WHERE column1=a AND column2>b
注釋:這是條件查詢語句,WHERE后是條件表達(dá)式,“*”表示查詢所有的字段。
SELECT column1,column2,…column FROM table_Name
注釋:查詢與table_name字段相同的信息。
SELECT column1,column2 FROM table_Name ORDER BY column2 [DESC]
注釋:ORDER BY是指排序按照這個(gè)字段,[DESC]是指排列從大到小,否則,排序是從小到大。
(二)添加:INSERT INTO table_Name(columna,columnb,…)SELECT columnx,columny,…FROM another_table
注釋:通過一個(gè)嵌套查詢將其他表格相應(yīng)字段結(jié)果插到此表格。
INSERT INTO table_name(column1,column2,…)VALUES (value1,value2,…)
注釋:插入語句中如果明示要插入得到字段,則按表中的字段順序插入。此外,數(shù)據(jù)的類型應(yīng)該相匹配。
(三)更新:UPDATE table_Name SET column1=’a’WHERE conditions
注釋:此語句意思為某種條件下把column1字段的值修改為a·。如果不加條件,默認(rèn)把字段全更改。
(四)刪除:DELETE FROM table_Name WHERE conditions
注釋:把符合條件的記錄全刪除。
四、聊天室規(guī)劃與實(shí)現(xiàn)
(一)聊天室規(guī)劃
1.每個(gè)用戶進(jìn)入聊天室之前,可以無需注冊(cè),進(jìn)行用戶登錄。
2.用戶可以進(jìn)入[用戶信息登錄界面]輸入自己登錄名和密碼。
3.聊天室內(nèi)聊天可以看到:所有在線用戶人總數(shù)及信息。點(diǎn)用戶名可以查看其該用戶詳細(xì)信息??梢耘c一個(gè)用戶私聊,也可以和用戶群聊。
4.采用FIREWORKS、CSS之類工具能設(shè)計(jì)出美觀、友好的用戶界面。
(二)聊天室流程圖
圖1 聊天室流程圖
(三)查詢?cè)跀?shù)據(jù)庫(kù)中的實(shí)現(xiàn)
要實(shí)現(xiàn)數(shù)據(jù)庫(kù)中的查詢,首先數(shù)據(jù)庫(kù)擁有存放相關(guān)信息的表,該設(shè)計(jì)中生成的表含有二個(gè)字段,分別是user和pw,將user定為主鍵。通過登錄頁面將用戶信息加入到表中,此處查詢是基于名為“information”的信息表。一旦涉及相關(guān)表進(jìn)行查詢,就會(huì)用到ADO.NET技術(shù)[5]。使用ADO.NET技術(shù)必須要引入一個(gè)名字空間,這里我們將代碼寫在Web程序中,程序代碼如下:
Imports System.Data.SqlClient;Imports System.Data
要實(shí)現(xiàn)數(shù)據(jù)庫(kù)的查詢,首先建立和數(shù)據(jù)庫(kù)的連接,使用SqlConnection對(duì)象連接數(shù)據(jù)庫(kù),程序代碼如下:
myconnection = New SqlConnection()
myconnection.ConnectionString=(\"server=localhost;userid=sa;password=;database=
chatroom\")
myconnection.Open()
完成與數(shù)據(jù)庫(kù)連接后,接下來就是對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,利用Command對(duì)象完成查詢,代碼如下:
Dim mycommand As SqlCommand
mycommand = New SqlCommand(\"select user,pwfrom information where user='\" username.Text \"'\", myconnection)
這段代碼定義一個(gè)Command對(duì)象,在數(shù)據(jù)庫(kù)中依據(jù)輸入的用戶名使用SQL查詢語句查詢用戶的user和pw。
查詢user和pw后如何知道是否得到了用戶信息,此時(shí)用到DataReader對(duì)象。DataReader對(duì)象把數(shù)據(jù)庫(kù)中對(duì)應(yīng)表的記錄遍歷一次,如果找到此用戶記錄就返回True,否則返回False。
(四)傳值實(shí)現(xiàn)
登錄界面中有兩處需要傳值的地方。第一向聊天頁面?zhèn)髦?,這里傳的值包含用戶名,用戶圖片和字體顏色。實(shí)現(xiàn)代碼如下:
Response.Redirect(\"chat.aspx?username=\"username.Text\"usercolor=\"UserColor.Value\"userfigure=\"userfigure.Items(userfigure.SelectedIndex).Value)
此處使用了Response對(duì)象,Response.Redirect定向到updata.aspx頁面并將用戶名和字體顏色傳到該頁面。
第二個(gè)傳值是向修改用戶信息頁面?zhèn)魉陀脩裘兔艽a。修改頁面中回顯用戶信息就是使用這兩個(gè)值。
五、結(jié)束語
隨著計(jì)算機(jī)科學(xué)的發(fā)展,網(wǎng)絡(luò)的不斷進(jìn)步,信息已成為時(shí)代的主題,為滿足廣大網(wǎng)絡(luò)用戶能在線交流信息,構(gòu)建類似網(wǎng)絡(luò)用戶聊天室已經(jīng)成為必然;此聊天室設(shè)計(jì)中用到ASP.NET的重要成員ADO.NET作為后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行開發(fā),不僅對(duì)管理整個(gè)聊天室方便有效,而且也為線上用戶提供了便捷的交流溝通工具。
參考文獻(xiàn):
[1]陳惠貞,陳俊榮.ASP.NET程序設(shè)計(jì)[M].北京:中國(guó)鐵道出版社,2003:68-96.
[2]陳嫻,劉開文,王蓉玲.ASP.NET項(xiàng)目開發(fā)實(shí)踐[M].北京:中國(guó)鐵道出版社,2003:81-122.
[3]李曉東,王淑艷.基于ASP.NET審計(jì)網(wǎng)站的開發(fā)淺談[J].吉林農(nóng)業(yè)科技學(xué)院學(xué)報(bào),2013(06).
[4]朱正國(guó).基于ASP.NET與SQL Server的通用多類型數(shù)據(jù)處理[J].計(jì)算機(jī)時(shí)代,2013(03).
[5]閆旭.淺談SQL Server數(shù)據(jù)庫(kù)的特點(diǎn)和基本功能[J].價(jià)值工程,2012(08).
[作者簡(jiǎn)介]吳兆立(1979-),男,山東菏澤市單縣人,碩士研究生,主要研究領(lǐng)域:網(wǎng)絡(luò)安全,計(jì)算機(jī)應(yīng)用技術(shù)。
[基金項(xiàng)目]教育教學(xué)研究課題《基于智慧校園的教學(xué)模式改革的研究與實(shí)踐》項(xiàng)目。