




已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
設(shè)計(jì)(論文)專用紙校園生活BBS網(wǎng)站建設(shè)畢業(yè)論文目錄摘要1Abstract2前言3第一章 BBS網(wǎng)站的引入51.1 BBS網(wǎng)站的概念51.2 BBS網(wǎng)站的特點(diǎn)51.3 BBS網(wǎng)站的發(fā)展和面臨的問題6第二章 系統(tǒng)開發(fā)環(huán)境和開發(fā)過程72.1開發(fā)校園生活BBS網(wǎng)站使用的運(yùn)行環(huán)境介紹72.1.1網(wǎng)站開發(fā)環(huán)境72.1.2 ASP.NET技術(shù)72.1.3 ADO簡介82.2 visual studio訪問數(shù)據(jù)庫的方案9第三章 需求分析103.1系統(tǒng)功能需求分析103.2系統(tǒng)功能設(shè)計(jì)103.3系統(tǒng)流程圖113.4數(shù)據(jù)庫設(shè)計(jì)123.4.1數(shù)據(jù)庫需求分析123.4.2 E-R圖133.4.3數(shù)據(jù)庫表設(shè)計(jì)14第四章 校園生活BBS網(wǎng)站系統(tǒng)的實(shí)現(xiàn)過程154.1系統(tǒng)首頁實(shí)現(xiàn)154.1.1首頁展示154.1.2網(wǎng)站首頁技術(shù)分析164.1.3網(wǎng)站首頁的實(shí)現(xiàn)過程194.2用戶注冊管理234.2.1注冊信息頁概述234.2.2注冊信息頁面技術(shù)分析244.2.3注冊信息頁面實(shí)現(xiàn)過程254.3用戶登錄管理294.4瀏覽帖子詳細(xì)信息頁面設(shè)計(jì)304.4.1瀏覽帖子詳細(xì)信息頁面概述304.4.2瀏覽帖子詳細(xì)信息頁面技術(shù)分析324.4.3瀏覽帖子詳細(xì)信息頁面實(shí)現(xiàn)過程334.5回復(fù)帖子頁面設(shè)計(jì)364.5.1回復(fù)帖子頁面概述364.5.2回復(fù)帖子頁面技術(shù)分析374.5.3回復(fù)帖子頁面實(shí)現(xiàn)過程384.6發(fā)表新帖子頁面設(shè)計(jì)434.6.1發(fā)表新帖子頁面概述434.6.2發(fā)表新帖子頁面技術(shù)分析444.6.3發(fā)表新帖子頁面實(shí)現(xiàn)過程454.7管理功能474.7.1用戶信息管理474.7.2帖子審核49結(jié)論51總結(jié)與體會52致謝53參考文獻(xiàn)5450 第一章 BBS網(wǎng)站的引入1.1 BBS網(wǎng)站的概念BBS的英文全稱是Bulletin Board System,翻譯為中文就是“電子公告板”。 目前,通過BBS系統(tǒng)可隨時(shí)取得國際最新的軟件及信息,也可以通過BBS系統(tǒng)來和別人討論計(jì)算機(jī)軟件、硬件、Internet、多媒體、程序設(shè)計(jì)以及醫(yī)學(xué)等等各種有趣的話題,更可以利用BBS系統(tǒng)來刊登一些“征友”、“廉價(jià)轉(zhuǎn)讓”及“公司產(chǎn)品”等啟事,而且這個(gè)園地就在你我的身旁。只要您擁有1臺計(jì)算機(jī)、1只調(diào)制解調(diào)器和1條電話線,就能夠進(jìn)入這個(gè)“超時(shí)代”的領(lǐng)域,進(jìn)而去享用它無比的威力! 電子公告板(BBS)是一種交互性強(qiáng)、內(nèi)容豐富而及時(shí)的Internet電子信息服務(wù)系統(tǒng)。用戶可以通過Modem和電話線登錄BBS站點(diǎn),也可以通過Internet登錄。用戶在BBS站點(diǎn)上可以獲得各種信息服務(wù):下載軟件、發(fā)布信息、進(jìn)行討論、聊天等。BBS站點(diǎn)的日常維護(hù)由BBS站長負(fù)責(zé)。 電子公告板(BBS)是Internet上的一種電子信息服務(wù)系統(tǒng)。它提供一塊公共電子白板,每個(gè)用戶都可以在上面書寫,可發(fā)布信息或提出看法。 電子公告板是一種發(fā)布并交換信息的在線服務(wù)系統(tǒng),可以使更多的用戶通過電話線以簡單的終端形式實(shí)現(xiàn)互聯(lián),從而得到廉價(jià)的豐富信息,并為其會員提供進(jìn)行網(wǎng)上交談、發(fā)布消息、討論問題、傳送文件、學(xué)習(xí)交流和游戲等的機(jī)會和空間。1.2 BBS網(wǎng)站的特點(diǎn)一個(gè)典型的論壇有: 一臺計(jì)算機(jī)一個(gè)或多個(gè)調(diào)制解調(diào)器一個(gè)或多個(gè)電話線一個(gè)論壇軟件包用戶社區(qū)1.3 BBS網(wǎng)站的發(fā)展和面臨的問題國內(nèi)的BBS站,單線站還占大多數(shù)。隨著計(jì)算機(jī)的普及,特別是調(diào)制解調(diào)器的大量使用,BBS的活動將會進(jìn)一步高漲。但是,隨之而來的撥號難和搶線難的問題將會加劇。盡管BBS站臺的數(shù)量在不斷增長,但這種增長的幅度總也趕不上用戶群的增長。許多人同時(shí)撥號一個(gè)站臺,不可避免地發(fā)生沖突。每回要撥上幾十次乃至上百次才能成功連上一個(gè)BBS站的狀況已經(jīng)成為困擾今日中國BBS用戶的一個(gè)難題。隨著BBS活動的深入,國內(nèi)已經(jīng)出現(xiàn)了一些多線站,一次可以允許多人進(jìn)行同時(shí)訪問。 BBS的發(fā)展過程中,也出現(xiàn)了一些問題。由于國內(nèi)使用的BBS架站軟件,都是從國外引進(jìn)的,因此沒有必要的中文說明。雖然一些熱心的站長翻譯了一些資料,但是僅靠這些是遠(yuǎn)遠(yuǎn)不夠的。另外,有些網(wǎng)站的設(shè)立是相互抄襲,所以在結(jié)構(gòu)上難免有雷同之處。 我們應(yīng)該清醒地認(rèn)識到,目前一些BBS站并沒有走上“簡單、易用”這一層次。包括一些廠商架設(shè)的BBS站,實(shí)用性還需要加強(qiáng)。今后,國內(nèi)的BBS站將向著個(gè)性化和專業(yè)化的方向發(fā)展。第二章 系統(tǒng)開發(fā)環(huán)境和開發(fā)過程2.1開發(fā)校園生活BBS網(wǎng)站使用的運(yùn)行環(huán)境介紹2.1.1網(wǎng)站開發(fā)環(huán)境網(wǎng)站開發(fā)環(huán)境:Microsoft Visual Studio 2005集成開發(fā)環(huán)境。網(wǎng)站開發(fā)語言:ASP.NET+C#。網(wǎng)站后臺數(shù)據(jù)庫:SQL Server 2005。開發(fā)運(yùn)行平臺:Windows XP (SP2)/ Windows 2000 (SP4)/ Windows Server 2003 (SP1)SP(Service Pack)為Windows操作系統(tǒng)補(bǔ)丁。服務(wù)器端操作系統(tǒng):Windows Server 2003 (SP1)Web服務(wù)器:Internet信息服務(wù)器(IIS)管理器。數(shù)據(jù)庫服務(wù)器:SQL Server 2005。瀏覽器:IE6.0。網(wǎng)站服務(wù)器運(yùn)行環(huán)境:Microsoft.NET Framework SDK v2.0??蛻舳藶g覽器:IE6.0。分辨率:最佳效果1024*768像素。2.1.2 ASP.NET技術(shù)ASP.NET 是一個(gè)革命性的編程框架,使快速開發(fā)強(qiáng)大的 Web 應(yīng)用程序和服務(wù)成為可行。它提供了最方便、最靈活的途徑來構(gòu)建,部署和運(yùn)行 Web 應(yīng)用程序,面向任何瀏覽器或設(shè)備。ASP.NET 的主要優(yōu)點(diǎn)如下:ASP.NET 讓構(gòu)建實(shí)用 Web 應(yīng)用程序前所未有的簡單。ASP.NET 讓開發(fā)人員充分利用他們現(xiàn)有的企業(yè)開發(fā)語言技能。Visual Basic .NET,C#,和 JScript .NET,給開發(fā)者提供選擇語言的靈活度。增強(qiáng)的開發(fā)環(huán)境。開發(fā)人員使用任何文本編輯器,甚至是“記事本”,都可充分使用 ASP.NET 的全部功能。Visual Studio .NET 同樣提供調(diào)試與部署 ASP.NET Web 應(yīng)用程序的集成支持。改善的性能。代碼與內(nèi)容分離的特性使得 ASP.NET 網(wǎng)頁被動態(tài)編譯至托管的類以獲得高性能。每個(gè)傳入的 HTTP 請求都被提交至一個(gè)新的頁面實(shí)例,因此開發(fā)人員不需要在代碼中關(guān)心線程安全問題。簡單快速的部署。ASP.NET 使用基于程序集的 Microsoft .NET 框架部署模型,也因此而由 xcopy 部署、程序集相鄰部署,以及基于 XML 的設(shè)置特性獲益。2.1.3 ADO簡介ActiveXDataObjects(ADO)是微軟最新的數(shù)據(jù)訪問技術(shù)。它被設(shè)計(jì)用來同新的數(shù)據(jù)訪問層OLEDBProvider一起協(xié)同工作,以提供通用數(shù)據(jù)訪問(UniversalDataAccess)。OLEDB是一個(gè)低層的數(shù)據(jù)訪問接口,用它可以訪問各種數(shù)據(jù)源,包括傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,以及電子郵件系統(tǒng)及自定義的商業(yè)對象。ADO向我們提供了一個(gè)熟悉的,高層的對OLEDB的Automation封裝接口。對那些熟悉RDO的程序員來說,你可以把OLEDB比作是ODBC驅(qū)動程序。如同RDO對象是ODBC驅(qū)動程序接口一樣,ADO對象是OLEDB的接口;如同不同的數(shù)據(jù)庫系統(tǒng)需要它們自己的ODBC驅(qū)動程序一樣,不同的數(shù)據(jù)源要求它們自己的OLEDB提供者(OLEDBprovider)。目前,雖然OLEDB提供者比較少,但微軟正積極推廣該技術(shù),并打算用OLEDB取代ODBC。2.2 visual studio訪問數(shù)據(jù)庫的方案public class DBpublic DB() public static SqlConnection createDB() /return new SqlConnection(server=.sqlexpress;database=db_Discuss;UId=sa;password=123); return new SqlConnection(server= 32D4A400050F410;database=db_Discuss;Integrated Security=True); server:SQL Server 2005數(shù)據(jù)庫的服務(wù)器名稱;database:需連接的數(shù)據(jù)庫的名稱;用SQL Server身份驗(yàn)證連接時(shí),需寫上用戶名UID和密碼password;用Windows身份驗(yàn)證連接時(shí),則不需寫用戶名UID和密碼password; 第三章 需求分析3.1系統(tǒng)功能需求分析對技術(shù)欄目的文章瀏覽和發(fā)表文章功能加以限制,論壇的管理功能尤為重要,將用戶化為不同級別,根據(jù)用戶級別的不同在論壇中為用戶分配不同的權(quán)限,同時(shí)一個(gè)成功的BBS系統(tǒng)的考察、分析,要求本系統(tǒng)具有以下特點(diǎn): 要求系統(tǒng)具有良好的人機(jī)界面。 功能強(qiáng)大,操作簡單,擴(kuò)展性強(qiáng),穩(wěn)定性高。 系統(tǒng)無操作系統(tǒng)限制,方便不同平臺之間的移植。 網(wǎng)站最大速度的實(shí)現(xiàn)易維護(hù)性和易操作性。網(wǎng)站運(yùn)行穩(wěn)定、安全可靠。3.2系統(tǒng)功能設(shè)計(jì)根據(jù)以上系統(tǒng)的需求分析,可以得出系統(tǒng)前臺和后臺要實(shí)現(xiàn)的功能主要如下所述。系統(tǒng)具體要實(shí)現(xiàn)的功能如下: l 用戶注冊l 用戶登錄l 用戶瀏覽帖子l 用戶發(fā)新帖l 用戶回復(fù)帖子l 用戶查看自己信息l 用戶修改自己的信息l 管理帖子信息:添加、刪除以及更改帖子信息l 管理用戶信息:添加、刪除以及更改用戶信息系統(tǒng)整體功能模塊如圖3-1所示:圖3-1 系統(tǒng)整體功能模塊圖3.3系統(tǒng)流程圖用戶進(jìn)入網(wǎng)站首頁,可以瀏覽網(wǎng)站的所有信息,包括瀏覽、搜索相關(guān)信息。用戶要想發(fā)帖,必須首先成為本站的會員。如果用戶已經(jīng)是本網(wǎng)站會員,則只需登錄即可實(shí)現(xiàn)整個(gè)論壇的所有操作,除可以瀏覽外,還可以發(fā)新帖、回復(fù)帖子和管理自己的信息。管理員可以修改管理用戶信息和帖子信息。系統(tǒng)流程圖如圖3-2所示。圖3-2系統(tǒng)流程圖3.4數(shù)據(jù)庫設(shè)計(jì)3.4.1數(shù)據(jù)庫需求分析1用戶信息表:用戶編號、用戶名稱、用戶密碼、英文姓名、電子郵件、頭像2回帖子信息表:編號、回復(fù)編號、回復(fù)標(biāo)題、回復(fù)內(nèi)容、回復(fù)人、回復(fù)時(shí)間3發(fā)帖信息表:帖子編號、帖子主題、帖子內(nèi)容、發(fā)帖人、創(chuàng)建日期、回復(fù)日期、瀏覽人數(shù)、置頂、人氣指數(shù)、文章類型4頭像信息表:頭像編號、頭像圖片3.4.2 E-R圖圖3-3發(fā)帖信息實(shí)體E-R圖圖3-4回帖信息實(shí)體E-R圖圖3-5頭像信息實(shí)體E-R圖圖3-6用戶信息實(shí)體E-R圖3.4.3數(shù)據(jù)庫表設(shè)計(jì)用戶信息表:用戶編號、用戶名稱、用戶密碼、英文姓名、電子郵件、頭像圖3-7用戶信息表回帖子信息表:編號、回復(fù)編號、回復(fù)標(biāo)題、回復(fù)內(nèi)容、回復(fù)人、回復(fù)時(shí)間圖3-8回帖信息表發(fā)帖信息表:帖子編號、帖子主題、帖子內(nèi)容、發(fā)帖人、創(chuàng)建日期、回復(fù)日期、瀏覽人數(shù)、置頂、人氣指數(shù)、文章類型圖3-9發(fā)帖信息表頭像信息表:頭像編號、頭像圖片圖3-10頭像消息表第四章 校園生活BBS網(wǎng)站系統(tǒng)的實(shí)現(xiàn)過程4.1系統(tǒng)首頁實(shí)現(xiàn)4.1.1首頁展示首頁是網(wǎng)站的門戶,既要方便用戶使用,又要有創(chuàng)新,以便吸引更多用戶來論壇。因此,在設(shè)計(jì)首頁時(shí),我將用戶最常用的幾個(gè)功能,如“會員注冊”、“帖子瀏覽”、“發(fā)新帖”、“用戶信息查詢”以及“修改用戶信息”等欄目設(shè)置在上導(dǎo)航欄中,“用戶登錄”、“注冊”等欄目設(shè)置在下面導(dǎo)航欄內(nèi),而網(wǎng)頁主體是帖子的標(biāo)題以便用戶瀏覽。頁面示例如圖4-1所示。圖4-1網(wǎng)站首頁 管理員登錄后會顯示“管理帖子”,其余會員及游客進(jìn)入不會顯示此區(qū)域。4.1.2網(wǎng)站首頁技術(shù)分析點(diǎn)擊“休閑娛樂”、“技術(shù)交流”、 “學(xué)科研究”、“求職信息”、“其他信息”。分別顯示不同類別下的帖子,這五個(gè)連接是用LinkButton控件完成的,不同類別下的帖子信息顯示用的是GridView控件實(shí)現(xiàn)的。點(diǎn)擊“學(xué)科研究”顯示如圖4-2所示:圖4-2 分區(qū)內(nèi)容顯示BBS網(wǎng)站首頁主要應(yīng)用了GridView控件的兩個(gè)關(guān)鍵技術(shù)數(shù)據(jù)綁定和分頁技術(shù)。在動態(tài)網(wǎng)站的開發(fā)過程中,經(jīng)常需要在表格控件中查看一些基本信息,在網(wǎng)上在線論壇中使用GridView控件將網(wǎng)上在線論壇的帖子的基本信息分頁顯示在網(wǎng)頁中,方便對帖子信息的查看。本頁面使用到的GridView控件中與綁定和分頁技術(shù)有關(guān)的屬性、事件介紹如下。AllowPaging屬性:獲取或設(shè)置一個(gè)值,該值顯示是否啟用分頁功能。DataSource屬性:獲取或設(shè)置對象,數(shù)據(jù)綁定控件從該對象中檢索其數(shù)據(jù)項(xiàng)列表。DataKeyNames屬性:獲取或設(shè)置一個(gè)組合,該數(shù)據(jù)組包含了顯示在GridView控件中的項(xiàng)的主鍵字段的名稱。DataKeys屬性:獲取一個(gè)DataKey對象集合,這些對象表示GridView控件中每一行的數(shù)據(jù)鍵值。PageCount屬性:獲取在GridView控件中顯示數(shù)據(jù)源記錄所需的頁數(shù)。PageIndex屬性:獲取或設(shè)置當(dāng)前顯示頁面的索引。PageSize屬性:獲取或設(shè)置GridView控件在每一頁面上所顯示的記錄數(shù)目。PageIndexChanging屬性:在單擊某一頁面導(dǎo)航一按鈕時(shí),在GridView控件處理分頁操作之前發(fā)生。根據(jù)以上技術(shù)分析,在應(yīng)用程序中應(yīng)用GridView控件來綁定注冊用戶發(fā)表的帖子的相關(guān)信息,如帖子標(biāo)題、發(fā)帖作者、人氣指數(shù)等。調(diào)用用戶自定義方法aa(),首先創(chuàng)建一個(gè)新的數(shù)據(jù)庫連接對象,并初始化一個(gè)SqlCommand命令對象,然后通過SqlDataAdapter(數(shù)據(jù)適配器)的Fill 方法填充創(chuàng)建的DataSet數(shù)據(jù)集,最后以Databind方法綁定數(shù)據(jù)庫中數(shù)據(jù),以顯示注冊會員發(fā)表的貼的相關(guān)信息。主要代碼如圖4-3:圖4-3gvlt就是給GridView控件起的名稱。在應(yīng)用程序中應(yīng)用GridView控件自帶的分頁技術(shù)時(shí),首先將GridView控件的AllowPaging屬性設(shè)置為True,以允許該控件分頁,然后觸發(fā)其PageIndexChanging事件,并在該事件中編寫GridView控件分頁的代碼。如圖4-4所示:圖4-4PageIndex屬性:獲取或設(shè)置所顯示的記錄的索引;NewPageIndex屬性:獲取用戶在GridView控件的頁選擇元素中選定的頁的索引。4.1.3網(wǎng)站首頁的實(shí)現(xiàn)過程本模塊使用的數(shù)據(jù)庫表為:tb_Users,tb_Content1.設(shè)計(jì)步驟下面對網(wǎng)站首頁的制作過程進(jìn)行詳細(xì)的講解,具體步驟如下:(1)在應(yīng)用程序中新建一個(gè)Web窗體,命名為Default.aspx,該頁面主要用于顯示網(wǎng)站首頁的相關(guān)信息。(2)在Web窗體的區(qū)域內(nèi)添加一個(gè)Table,用于頁面的整體布局,并在用戶控件窗體的區(qū)域內(nèi)放一個(gè)foot.ascx用戶控件,用于顯示網(wǎng)站底部信息。(3)在網(wǎng)站首頁Default.aspx中涉及的主要控件、控件屬性設(shè)置以及用途如表4-1所示:表4-1Default.aspx中涉及的主要控件控件類型控件ID主要屬性設(shè)置用途TextBoxtxtname無輸入登錄用戶名TextBoxtxtpwdTextMode屬性設(shè)置為“Password”輸入登錄用戶密碼ImageButtonImageButton1ImageUrl屬性設(shè)置為“/image/denglu an niu.gif”“登錄”按鈕ImageButtonbtnZcImageUrl屬性設(shè)置為“/image/zhuce an niu.gif”“注冊”按鈕GridViewgvltAllowPaging屬性設(shè)置為True(允許分頁)AutoGenerateColumns屬性設(shè)置為False(取消自動生成)PageSize屬性設(shè)置為14(每頁顯示14條數(shù)據(jù))顯示帖子信息LabelLabel3Text屬性設(shè)置為“用戶名”顯示“用戶名”文字信息LabelLabel4Text屬性設(shè)置為“密碼”顯示“密碼”文字信息LinkButtonLinkButton2Text屬性設(shè)置為“用戶管理信息”顯示“用戶管理信息”文字信息LinkButtonLinkButton3Text屬性設(shè)置為“修改當(dāng)前用戶信息”顯示“修改當(dāng)前用戶信息”文字信息2.實(shí)現(xiàn)代碼首先在后臺代碼的命名空間區(qū)域內(nèi),添加如下命令空間:如圖4-5所示:圖4-5在Page_Load事件中,通過CompareTo方法將系統(tǒng)時(shí)間域設(shè)定的時(shí)間13小時(shí)進(jìn)行比較,來獲取相應(yīng)的問候語。如果系統(tǒng)時(shí)間比設(shè)定的時(shí)間13小時(shí)小,將顯示“上午好!”;如果系統(tǒng)時(shí)間比設(shè)定的時(shí)間13小時(shí)大,將顯示“下午好!”;其他情況顯示“中午好!”。主要代碼為,如圖4-6所示:圖4-6注釋:Session:是ASP和ASP.NET中用于保持狀態(tài)的基于Web服務(wù)器的方法,Session允許通過將對象存儲在Web服務(wù)器的內(nèi)存中在整個(gè)用戶會話過程中保持任何對象。Session通常用于執(zhí)行以下操作:存儲需要在整個(gè)用戶會話過程中保持其狀態(tài)的信息,存儲只需要在頁面重新加載過程中或按功能分組的一組頁面之間保持其狀態(tài)的對象。Session的作用就是它在Web服務(wù)器上保持用戶的狀態(tài)信息提供在任何時(shí)間從任何頁面訪問,因?yàn)闉g覽器不需要存儲任何這種信息,所以可以使用任何瀏覽器,即使是像PDA或手機(jī)這樣的瀏覽器設(shè)備。實(shí)現(xiàn)GridView控件分頁功能時(shí),首先需要將GridView控件的AllowPaging屬性設(shè)置為True,以允許該控件分頁,然后觸發(fā)PageIndexChanging事件,并在該事件中編寫GridView控件分頁的代碼。如圖4-7所示: 圖4-7在論壇首頁功能實(shí)現(xiàn)中,注冊的會員及網(wǎng)站管理員都可在同一登錄窗口輸入各自的相關(guān)信息進(jìn)入相應(yīng)功能頁面。單擊頁面中的“登錄”按鈕,觸發(fā)其Click事件。protected void ImageButton1_Click1(object sender, ImageClickEventArgs e) SqlConnection con = DB.createDB(); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; con.Open(); /創(chuàng)建的命令文本屬性設(shè)置 cmd.CommandText = select count(*) from tb_Users where UserName= + this.txtname.Text + and UserPwd= + this.txtpwd.Text + ; int a = Convert.ToInt32(cmd.ExecuteScalar(); if (a 0)/判斷數(shù)據(jù)庫中是否有數(shù)據(jù) Response.Write(alert(恭喜您登錄成功!);location=javascript:history.go(-1); SessionUserName = this.txtname.Text;/利用Session對象保存登錄的用戶名 SessionUserPwd = this.txtpwd.Text; this.Literal1.Text = SessionUserName .ToString()+ + 登錄成功; txtname.Text = ; txtpwd.Text = ; else Response.Write(alert(很遺憾,登錄失敗!);location=javascript:history.go(-1); con.Close(); 注釋:SqlCommand:表示要對SQL Server數(shù)據(jù)庫執(zhí)行的一個(gè)Transact-SQL語句或存儲過程。ExecuteScalar:執(zhí)行查詢,并返回查詢所返回的結(jié)果集中的第一行第一列,其他的行列忽略。4.2用戶注冊管理4.2.1注冊信息頁概述要在論壇中發(fā)表帖子必須注冊成會員。在網(wǎng)站首頁中單擊“注冊”按鈕,進(jìn)入注冊頁面,在其中根據(jù)提示輸入相關(guān)信息。另外,注冊的用戶可以選擇自己喜歡的有個(gè)性的頭像在論壇中代表自己的形象。完成以上操作,單擊“保存”按鈕,系統(tǒng)核對后即可注冊為會員。點(diǎn)擊“”按鈕,進(jìn)入如下頁面如圖4-8所示: 圖4-8用戶注冊協(xié)議 圖4-9新用戶注冊信息點(diǎn)擊“”即進(jìn)入如圖4-9所示:如果是已經(jīng)注冊了的名稱,系統(tǒng)會提示如圖4-10所示。注冊成功,后會顯示如圖4-11所示。 圖4-10重名提示 圖4-11成功提示4.2.2注冊信息頁面技術(shù)分析在網(wǎng)上在線論壇中,當(dāng)用戶填寫完注冊信息,單擊“保存”按鈕時(shí),程序會將用戶填寫的數(shù)據(jù)保存到用戶信息表中,同時(shí),程序還會向另一個(gè)數(shù)據(jù)表中存入本次注冊操作的日志信息。為了避免在這個(gè)操作過程中由于意外原因造成操作失誤,在程序中存入了事務(wù)。事務(wù)處理可以避免某種原因而導(dǎo)致數(shù)據(jù)的錯誤,確保插入數(shù)據(jù)最終結(jié)果的確定性和數(shù)據(jù)的一致性。 在注冊信息頁面中,應(yīng)用SqlConnection對象的BeginTransaction方法創(chuàng)建名為st的SqlTransaction對象,然后將該對象分配給SqlCommand對象的Transaction屬性,最后通過該對象的Commit方法提交事務(wù),利用SqlTransaction對象的Rollback方法回滾事務(wù)。在ADO.NET中可通過連接類的BeginTransaction方法創(chuàng)建一個(gè)全新的本地事務(wù),可以為該事務(wù)賦予一個(gè)名稱和一個(gè)隔離級。BeginTransaction方法:該方法用于開始數(shù)據(jù)庫事務(wù)。返回值:表示新事務(wù)的對象。Transaction:用于獲取或設(shè)置將在其中執(zhí)行SqlCommand的SqlTransaction。屬性值:SqlTransaction默認(rèn)為空引用。Commit方法:用于提交數(shù)據(jù)庫事務(wù)。Rollback方法:用于從掛起狀態(tài)回滾事務(wù)。在以上方法中為了向事務(wù)添加命令回滾,設(shè)置了命令對象的Transaction屬性,但如果把一個(gè)命令對象的Transaction屬性設(shè)置到了一個(gè)不是連接到同一個(gè)連接的事務(wù)對象,在試圖執(zhí)行一個(gè)語句時(shí)將會拋出一個(gè)異常,一旦所有的命令完成執(zhí)行,調(diào)用事務(wù)對象的Commit方法完成,或者調(diào)用Rollback方法撤銷該事務(wù),并回滾所有的變更。通過使用Commit或Rollback方法,可顯式地終止一個(gè)事務(wù)。SqlTransaction類支持事務(wù)中有名稱的保存點(diǎn)(named savepoint),用它可以恢復(fù)事務(wù)的某一部分。有名稱的保存點(diǎn)利用一個(gè)特定的SQL Server 特性:SAVE TRANSACTION語句。4.2.3注冊信息頁面實(shí)現(xiàn)過程1.設(shè)計(jì)步驟下面對網(wǎng)站首頁的制作過程進(jìn)行詳細(xì)的講解。具體步驟如下:在應(yīng)用程序中首先創(chuàng)建一個(gè)名為zhucexinxi的文件夾,在該文件夾下創(chuàng)建一個(gè)Web窗體,命名為zhuce.aspx,該頁主要顯示用戶注冊的相關(guān)信息。在Web窗體的區(qū)域內(nèi)添加一個(gè)Table,用于頁面的整體布局,并在用戶控件窗體的區(qū)域內(nèi)拖放一個(gè)foot.ascx用戶控件,用于顯示網(wǎng)站底部信息。在用戶注冊頁zhuce.aspx中涉及的主要控件、控件屬性設(shè)置及用途如表4-2所示:表4-2注冊信息頁中用到的主要控件控件類型控件ID主要屬性設(shè)置用途TextBoxtxtname 無輸入用戶姓名TextBoxTxtpwdTextMode屬性設(shè)置為Password輸入用戶密碼ButtonbtnokText屬性設(shè)置為“保存”“保存”按鈕(單擊“保存”按鈕,將用戶輸入的注冊信息填充到數(shù)據(jù)庫中)DropDownListddltouxiang無顯示頭像圖片的路徑(可以從下拉列表中選擇頭像圖片)LinkButtonLbtnText屬性設(shè)置為返回首頁“返回首頁”文字信息(單擊LinkButton控件將連接到網(wǎng)站首頁)Imageimgtouxiang無當(dāng)用戶選擇DropDownList下拉列表框中的頭像路徑時(shí),將該頭像的圖片綁定到Image控件中,并顯示出來RequireFieldValidatorRfvnameControlToValidate屬性設(shè)置為“txtname”, Display屬性設(shè)置為Dynamic(表示驗(yàn)證控件中錯誤信息的不同顯示行為。Display有3個(gè)值,分別是NoneStaticDynamic)ErrorMessage屬性設(shè)置為“用戶姓名不能為空”(當(dāng)文本框中沒有輸入任何信息時(shí),將顯示用戶名不能為空)當(dāng)TextBox控件中沒有輸入任何信息時(shí)將顯示“用戶名不能為空”2.代碼實(shí)現(xiàn):引入命名空間,代碼如下:using System.Data.SqlClient;在page_load事件中,根據(jù)傳過來的變量Id的中值查詢頭像信息表,主要通過SqlDataAdapter類實(shí)現(xiàn),然后通過Fill方法,將數(shù)據(jù)綁定到數(shù)據(jù)集中并且將數(shù)據(jù)綁定到DropDownList控件中加以顯示。如圖4-12所示:圖4-12DataTextField屬性:獲取或設(shè)置要綁定到DropDownList控件的數(shù)據(jù)源的字段名。SelectValue:獲取或設(shè)置Image控件中選定DropDownList控件的值。單擊“保存”按鈕,通過SqlConnection對象的BeginTransaction方法創(chuàng)建名為st的SqlTransaction對象,然后將該對象分配給SqlCommand對象的Transaction屬性,然后通過該對象的Commit方法提交事務(wù),利用SqlTransaction對象的Rollback方法回滾事務(wù)。關(guān)鍵代碼如下: protected void Button1_Click(object sender, EventArgs e) SqlConnection con = DB.createDB(); con.Open(); SqlTransaction st = con.BeginTransaction();/通過SqlConnection的BeginTransaction方法創(chuàng)建名為st的對象Transaction SqlCommand cmd = con.CreateCommand(); cmd.Transaction = st;/將SqlTransaction對象分配給SqlCommand對象的Transaction屬性 try . st.Commit();/提交事務(wù)st.Rollback();/回滾事務(wù) con.Close();BeginTransaction方法:開始數(shù)據(jù)庫事務(wù)。CreateCommand方法:創(chuàng)建并返回與當(dāng)前連接關(guān)聯(lián)的DBCommand對象。Commit方法:提交事務(wù)。在注冊過程中選擇標(biāo)識自己的頭像時(shí),應(yīng)用到了一個(gè)DropDownList控件,在該控件中觸發(fā)其SelectedIndexChanged事件,將該控件中選擇的值傳送到Image控件當(dāng)中。如圖4-13所示:圖4-13在該注冊頁中,添加了一個(gè)“返回首頁”的超鏈接,用于將頁面跳轉(zhuǎn)到網(wǎng)站首頁。如圖4-14所示:圖4-144.3用戶登錄管理輸入用戶名和密碼,系統(tǒng)檢測用戶名是否存在,如果不存在,則跳到注冊頁面,如果存在,則進(jìn)入數(shù)據(jù)庫,查詢用戶名和密碼是否一致,如果有一個(gè)不準(zhǔn)確,則顯示如圖4-15所示,如果都正確,則顯示如圖4-16所示。流程圖如圖4-17和圖4-18所示。 圖4-15 圖4-16 圖4-17 圖4-184.4瀏覽帖子詳細(xì)信息頁面設(shè)計(jì)4.4.1瀏覽帖子詳細(xì)信息頁面概述在網(wǎng)站首頁的帖子信息列表中,當(dāng)用戶單擊某條帖子后面的“詳細(xì)信息”超鏈接時(shí),即可進(jìn)入到該帖子的詳細(xì)信息頁面中。瀏覽該帖子的詳細(xì)信息頁面的運(yùn)行效果如圖4-19所示:圖4-19帖子詳細(xì)信息頁面4.4.2瀏覽帖子詳細(xì)信息頁面技術(shù)分析網(wǎng)上在線論壇的瀏覽帖子詳細(xì)信息頁面中,主要用到了DataList控件的兩個(gè)關(guān)鍵技術(shù)數(shù)據(jù)綁定技術(shù)和刪除功能。(1)DataList控件的數(shù)據(jù)綁定技術(shù) 在動態(tài)網(wǎng)站的開發(fā)過程中,經(jīng)常需要在表格控件中查看一些基本信息,在網(wǎng)上在線論壇中使用DataList控件將帖子的基本信息分頁顯示在網(wǎng)頁中,方便對帖子信息的查看。本頁面使用到的DataList控件中與綁定有關(guān)的屬性、事件如下:DataKeyField屬性:獲取或設(shè)置由DataSource屬性指定的數(shù)據(jù)源中的鍵字段。DataKeys屬性:獲取存儲數(shù)據(jù)列表控件中每個(gè)記錄的鍵值。DataMember屬性:獲取或設(shè)置多成員數(shù)據(jù)源中要綁定到數(shù)據(jù)列表控件的特定數(shù)據(jù)成員。DataSource屬性:獲取或設(shè)置數(shù)據(jù)源,該數(shù)據(jù)源中包括用于填充控件中的項(xiàng)的值列表。(2)DataList控件的刪除功能 在開發(fā)像博客、論壇這樣的網(wǎng)站時(shí),通常都有一個(gè)模塊允許注冊用戶對某些文章發(fā)表自己的觀點(diǎn),但為了防止惡意攻擊,需要對一些數(shù)據(jù)進(jìn)行清理,管理員在查看帖子信息時(shí),可以直接在某條留言信息上單擊“刪除”按鈕將其刪除。網(wǎng)上在線論壇網(wǎng)站中通過在DataList控件中使用LinkButton控件,實(shí)現(xiàn)對文章評論的刪除功能。 本頁面中主要實(shí)現(xiàn)DataList控件中信息的刪除功能,其相關(guān)屬性和事件說明如下:CommandName屬性:該屬性可以分為分別設(shè)置為Cancel、Delete、Edit、Selete和Update,分別用來表示“取消”命令名,“刪除” 命令名,“編輯” 命令名,“選擇”“修改” 命令名。ItemCommand事件:在用戶選擇與項(xiàng)關(guān)聯(lián)的命令時(shí)發(fā)生。ItemDtatBound屬性:當(dāng)項(xiàng)被數(shù)據(jù)綁定到DataList控件時(shí)發(fā)生。 網(wǎng)上在線論壇中瀏覽帖子詳細(xì)信息頁面中的DataList控件實(shí)現(xiàn)刪除功能的事件是寫在ItemCommand事件中的,前提是必須將LinkButton控件中的CommandName屬性的值設(shè)置一下,然后在ItemCommand事件中只要判斷CommandName屬性的值即可。如果不想在ItemCommand事件中寫刪除語句,也可在DataList控件中實(shí)現(xiàn)刪除功能,通過設(shè)置LinkButton控件的CommandName屬性為Delete,并觸發(fā)DataList控件的DeleteCommand事件,因此可以將語句寫在DeleteCommand事件中。4.4.3瀏覽帖子詳細(xì)信息頁面實(shí)現(xiàn)過程1.設(shè)計(jì)步驟下面對瀏覽帖子詳細(xì)信息頁面的制作過程進(jìn)行詳細(xì)的講解,具體步驟如下:在應(yīng)用程序中首先創(chuàng)建一個(gè)名為tiezixinxi的文件夾,在該文件夾下創(chuàng)建一個(gè)Web窗體,命名為chakan.aspx,該頁主要用于顯示論壇用戶發(fā)表的帖子信息。在Web窗體的區(qū)域內(nèi)添加一個(gè)DataList控件,用于顯示帖子的詳細(xì)信息。在DataList控件中添加顯示帖子詳細(xì)信息用到的控件,在DataList控件中涉及的主要控件、控件屬性及用途如表4-3所示:表4-3 chakan.aspx頁中用到的主要控件控件類型控件ID主要屬性設(shè)置用途TextBoxTextBox1TextMode屬性設(shè)置為MultiLine將帖子內(nèi)容詳細(xì)信息綁定到TextBox控件中DataListDlxx無用于顯示帖子的詳細(xì)內(nèi)容LinkButtonLinkButton1 Text屬性設(shè)置為“我要回復(fù)”,CommandName屬性設(shè)置為hf顯示“用戶信息管理”文字信息(單擊LinkButton控件將信息傳遞給回帖信息表中)LinkButtonLinkDeleteText屬性設(shè)置為“刪除此帖”,CommandName屬性設(shè)置為sc顯示“用戶信息管理”文字信息(單擊LinkButton控件將刪除DataList控件中的帖子信息)LabellblnameText屬性設(shè)置為“發(fā)帖人名”顯示“發(fā)帖人名”的文字信息Labellblbh無用于綁定帖子編號的詳細(xì)信息ImageImgtx無用于綁定帖子的頭像信息的照片2實(shí)現(xiàn)代碼:引入命名空間,代碼如下:using System.Data.SqlClient;在頁面的page_load事件中,調(diào)用綁定帖子信息表的用戶自定義aa方法,將帖子信息顯示到DataList控件中。調(diào)用綁定回復(fù)帖子信息表的用戶自定義hfbind方法,將回復(fù)帖子信息顯示到DataList控件中。調(diào)用用戶自定義方法的分頁pagebind方法,將信息顯示到DataList控件中。關(guān)鍵代碼如下:protected void Page_Load(object sender, EventArgs e) lblhtyhm.Visible = false; if (!IsPostBack) this.aa();/調(diào)用綁定方法 this.pagebind();/調(diào)用分頁方法 string ContId = RequestContId; SqlConnection con = DB.createDB(); con.Open(); SqlCommand cmd1 = new SqlCommand(update tb_Content set HitCount=HitCount+1 where ContId= + ContId + , con); cmd1.ExecuteNonQuery(); con.Close(); /this.hfbind();/調(diào)用綁定方法 該頁面的page_load事件中調(diào)用了自定義的aa()方法,aa()方法為自定義的無返回類型方法,該方法主要用來從數(shù)據(jù)庫中查詢出符合指定條件的記錄,并綁定到DataList控件中。public void aa() string ContId = RequestContId; SqlConnection con = DB.createDB(); con.Open(); SqlDataAdapter sda = new SqlDataAdapter(select top 1 a.*,b.* from tb_Users as a join tb_Content as b on a.UserName=b.UserName where b.ContId= + ContId + , con); DataSet ds = new DataSet(); sda.Fill(ds, tb_Content); this.dlxx.DataSource = ds; this.dlxx.DataBind(); con.Close();/關(guān)閉數(shù)據(jù)庫連接 Request對象:獲取當(dāng)前請求所對應(yīng)的內(nèi)部請求對象。SqlConnection類:表示SQL Server 數(shù)據(jù)庫一個(gè)打開的連接。Fill方法:在DataSet中添加或刷新行以匹配使用DataSet名稱的數(shù)據(jù)源的行,并創(chuàng)建一個(gè)DataTable。DataBind方法:將數(shù)據(jù)源綁定到被調(diào)用的服務(wù)器控件及其所有子控件。在DataList1_ItemCommand事件中,首先判斷CommandName的值是否是hf,也就是單擊“回復(fù)信息”超鏈接,然后判斷是否登錄,如沒有登錄,將頁面跳轉(zhuǎn)到登錄頁面中,如果已經(jīng)登錄則根據(jù)SqlDataReader對象的應(yīng)用,將回復(fù)信息的標(biāo)題和回復(fù)信息的編號讀取出來,并加以顯示。protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) if (e.CommandName = hf) if (SessionUserName = null & SessionUserPwd = null) Response.Redirect(/denglu/denglu.aspx); else this.lblhtyhm.Text = SessionUserName.ToString(); string ContId = RequestContId; SqlConnection con = DB.createDB(); con.Open(); SqlCommand cmd = new SqlCommand(select a.*,b.* from tb_Users as a join tb_Content as b on a.UserName=b.UserName where b.ContId= + ContId + , con); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); 注釋:CommandName:獲取或設(shè)置命令名,該命令名于傳遞給Command事件的 Button控件相關(guān)聯(lián)。Session::存儲需要在整個(gè)用戶會話過程中保持其狀態(tài)的信息。Response:提供當(dāng)前頁的輸出流的訪問。Redirect方法:獲取或設(shè)置重定向URL。Read:獲取或設(shè)置該字符串值所指定環(huán)境變量的讀訪問權(quán)限。4.5回復(fù)帖子頁面設(shè)計(jì)4.5.1回復(fù)帖子頁面概述回復(fù)帖子和瀏覽帖子詳細(xì)內(nèi)容在同一個(gè)頁面中,目的是當(dāng)單擊帖子詳細(xì)信息頁面的“”超鏈接后,在回復(fù)帖子頁面的最下方顯示一個(gè)回帖信息,這時(shí)便可以回帖了?;貜?fù)帖子的頁面運(yùn)行效果如圖4-20所示:圖4-20回復(fù)帖子頁面4.5.2回復(fù)帖子頁面技術(shù)分析網(wǎng)上在線論壇的回復(fù)帖子頁面中,主要設(shè)計(jì)DataList控件的利用內(nèi)連接查詢技術(shù),利用DataList控件實(shí)現(xiàn)分頁技術(shù)和DataList控件的數(shù)據(jù)綁定技術(shù)。下面將對以上技術(shù)作詳細(xì)介紹:(1)內(nèi)連接查詢技術(shù) 同時(shí)顯示兩張表的信息,就需要使用內(nèi)連接,內(nèi)連接INNER JOIN只返回同時(shí)和兩個(gè)表或結(jié)果集匹配的數(shù)據(jù)行。內(nèi)連接是用比較運(yùn)算符比較要連接列的值的連接,在SQL92標(biāo)準(zhǔn)中,內(nèi)連接可在FROM或WHERE子句中指定。內(nèi)連接又稱對等連接,它返回兩個(gè)表中的所有的列,但只返回在連接列中具有相等值的行。(2)DataList控件實(shí)現(xiàn)分頁技術(shù)在開發(fā)論壇網(wǎng)站時(shí),常常需要在頁面中比較全面的顯示一些信息,但如果要顯示的信息記錄過多,用一個(gè)頁面顯示所有的記錄會給用戶帶來很大的不便,為了解決這個(gè)問題,DataList控件的分頁技術(shù)可以限定一個(gè)頁面中顯示的記錄數(shù)。本頁面使用到的DataList控件中與分頁有關(guān)的屬性、事件如下:AllowPaging屬性:獲取或設(shè)置由DataSource屬性指定的數(shù)據(jù)源中的鍵字段。AllowCustomPaging
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- BI-1181181-MZ-生命科學(xué)試劑-MCE
- 寧夏大學(xué)新華學(xué)院《即興口語傳播一》2023-2024學(xué)年第一學(xué)期期末試卷
- 武漢生物工程學(xué)院《田徑運(yùn)動會編排操作》2023-2024學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《全科醫(yī)療中的醫(yī)患關(guān)系與溝通技巧》2023-2024學(xué)年第一學(xué)期期末試卷
- 青島遠(yuǎn)洋船員職業(yè)學(xué)院《漫畫墨線繪制》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024-2025學(xué)年江蘇省揚(yáng)大附中東部分學(xué)校九年級化學(xué)第一學(xué)期期末監(jiān)測模擬試題含解析
- 公路貨運(yùn)行業(yè)數(shù)字化轉(zhuǎn)型2025年與物流政策法規(guī)研究報(bào)告
- 公路貨運(yùn)行業(yè)數(shù)字化轉(zhuǎn)型與綠色物流發(fā)展報(bào)告
- 雁形板在節(jié)能建筑中的應(yīng)用及安裝技巧
- 美容整形手術(shù)室的感染控制體系
- 融媒體新聞報(bào)道實(shí)務(wù) 課件全套 第1-3部分 理論構(gòu)建:融合新聞思維導(dǎo)圖- 融媒體作品展示:實(shí)力呈現(xiàn)與效果
- 酒精所致精神障礙護(hù)理課件
- 2023年醫(yī)技類-康復(fù)醫(yī)學(xué)(副高)考試歷年真題薈萃帶答案
- 改進(jìn)維持性血液透析患者貧血狀況PDCA
- 漏肩風(fēng)(肩周炎)中醫(yī)臨床路徑及入院標(biāo)準(zhǔn)2020版
- 光面爆破知識講座課件
- 高鐵站裝飾裝修方案
- DB4401-T 112.1-2021 城市道路占道施工交通組織和安全措施設(shè)置+第1部分:交通安全設(shè)施設(shè)置-(高清現(xiàn)行)
- 質(zhì)量整改通知單(樣板)
- 杭州市高級中學(xué)2022年高一新生素質(zhì)測試(分班考)模擬試卷
- 《碳纖維片材加固混凝土結(jié)構(gòu)技術(shù)規(guī)程》(2022年版)
評論
0/150
提交評論