




已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
設(shè)計(論文)專用紙校園生活BBS網(wǎng)站建設(shè)畢業(yè)論文目錄摘要1Abstract2前言3第一章 BBS網(wǎng)站的引入51.1 BBS網(wǎng)站的概念51.2 BBS網(wǎng)站的特點51.3 BBS網(wǎng)站的發(fā)展和面臨的問題6第二章 系統(tǒng)開發(fā)環(huán)境和開發(fā)過程72.1開發(fā)校園生活BBS網(wǎng)站使用的運行環(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è)計103.3系統(tǒng)流程圖113.4數(shù)據(jù)庫設(shè)計123.4.1數(shù)據(jù)庫需求分析123.4.2 E-R圖133.4.3數(shù)據(jù)庫表設(shè)計14第四章 校園生活BBS網(wǎng)站系統(tǒng)的實現(xiàn)過程154.1系統(tǒng)首頁實現(xiàn)154.1.1首頁展示154.1.2網(wǎng)站首頁技術(shù)分析164.1.3網(wǎng)站首頁的實現(xiàn)過程194.2用戶注冊管理234.2.1注冊信息頁概述234.2.2注冊信息頁面技術(shù)分析244.2.3注冊信息頁面實現(xiàn)過程254.3用戶登錄管理294.4瀏覽帖子詳細信息頁面設(shè)計304.4.1瀏覽帖子詳細信息頁面概述304.4.2瀏覽帖子詳細信息頁面技術(shù)分析324.4.3瀏覽帖子詳細信息頁面實現(xiàn)過程334.5回復帖子頁面設(shè)計364.5.1回復帖子頁面概述364.5.2回復帖子頁面技術(shù)分析374.5.3回復帖子頁面實現(xiàn)過程384.6發(fā)表新帖子頁面設(shè)計434.6.1發(fā)表新帖子頁面概述434.6.2發(fā)表新帖子頁面技術(shù)分析444.6.3發(fā)表新帖子頁面實現(xiàn)過程454.7管理功能474.7.1用戶信息管理474.7.2帖子審核49結(jié)論51總結(jié)與體會52致謝53參考文獻5450 第一章 BBS網(wǎng)站的引入1.1 BBS網(wǎng)站的概念BBS的英文全稱是Bulletin Board System,翻譯為中文就是“電子公告板”。 目前,通過BBS系統(tǒng)可隨時取得國際最新的軟件及信息,也可以通過BBS系統(tǒng)來和別人討論計算機軟件、硬件、Internet、多媒體、程序設(shè)計以及醫(yī)學等等各種有趣的話題,更可以利用BBS系統(tǒng)來刊登一些“征友”、“廉價轉(zhuǎn)讓”及“公司產(chǎn)品”等啟事,而且這個園地就在你我的身旁。只要您擁有1臺計算機、1只調(diào)制解調(diào)器和1條電話線,就能夠進入這個“超時代”的領(lǐng)域,進而去享用它無比的威力! 電子公告板(BBS)是一種交互性強、內(nèi)容豐富而及時的Internet電子信息服務(wù)系統(tǒng)。用戶可以通過Modem和電話線登錄BBS站點,也可以通過Internet登錄。用戶在BBS站點上可以獲得各種信息服務(wù):下載軟件、發(fā)布信息、進行討論、聊天等。BBS站點的日常維護由BBS站長負責。 電子公告板(BBS)是Internet上的一種電子信息服務(wù)系統(tǒng)。它提供一塊公共電子白板,每個用戶都可以在上面書寫,可發(fā)布信息或提出看法。 電子公告板是一種發(fā)布并交換信息的在線服務(wù)系統(tǒng),可以使更多的用戶通過電話線以簡單的終端形式實現(xiàn)互聯(lián),從而得到廉價的豐富信息,并為其會員提供進行網(wǎng)上交談、發(fā)布消息、討論問題、傳送文件、學習交流和游戲等的機會和空間。1.2 BBS網(wǎng)站的特點一個典型的論壇有: 一臺計算機一個或多個調(diào)制解調(diào)器一個或多個電話線一個論壇軟件包用戶社區(qū)1.3 BBS網(wǎng)站的發(fā)展和面臨的問題國內(nèi)的BBS站,單線站還占大多數(shù)。隨著計算機的普及,特別是調(diào)制解調(diào)器的大量使用,BBS的活動將會進一步高漲。但是,隨之而來的撥號難和搶線難的問題將會加劇。盡管BBS站臺的數(shù)量在不斷增長,但這種增長的幅度總也趕不上用戶群的增長。許多人同時撥號一個站臺,不可避免地發(fā)生沖突。每回要撥上幾十次乃至上百次才能成功連上一個BBS站的狀況已經(jīng)成為困擾今日中國BBS用戶的一個難題。隨著BBS活動的深入,國內(nèi)已經(jīng)出現(xiàn)了一些多線站,一次可以允許多人進行同時訪問。 BBS的發(fā)展過程中,也出現(xiàn)了一些問題。由于國內(nèi)使用的BBS架站軟件,都是從國外引進的,因此沒有必要的中文說明。雖然一些熱心的站長翻譯了一些資料,但是僅靠這些是遠遠不夠的。另外,有些網(wǎng)站的設(shè)立是相互抄襲,所以在結(jié)構(gòu)上難免有雷同之處。 我們應該清醒地認識到,目前一些BBS站并沒有走上“簡單、易用”這一層次。包括一些廠商架設(shè)的BBS站,實用性還需要加強。今后,國內(nèi)的BBS站將向著個性化和專業(yè)化的方向發(fā)展。第二章 系統(tǒng)開發(fā)環(huán)境和開發(fā)過程2.1開發(fā)校園生活BBS網(wǎng)站使用的運行環(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ā)運行平臺:Windows XP (SP2)/ Windows 2000 (SP4)/ Windows Server 2003 (SP1)SP(Service Pack)為Windows操作系統(tǒng)補丁。服務(wù)器端操作系統(tǒng):Windows Server 2003 (SP1)Web服務(wù)器:Internet信息服務(wù)器(IIS)管理器。數(shù)據(jù)庫服務(wù)器:SQL Server 2005。瀏覽器:IE6.0。網(wǎng)站服務(wù)器運行環(huán)境:Microsoft.NET Framework SDK v2.0??蛻舳藶g覽器:IE6.0。分辨率:最佳效果1024*768像素。2.1.2 ASP.NET技術(shù)ASP.NET 是一個革命性的編程框架,使快速開發(fā)強大的 Web 應用程序和服務(wù)成為可行。它提供了最方便、最靈活的途徑來構(gòu)建,部署和運行 Web 應用程序,面向任何瀏覽器或設(shè)備。ASP.NET 的主要優(yōu)點如下:ASP.NET 讓構(gòu)建實用 Web 應用程序前所未有的簡單。ASP.NET 讓開發(fā)人員充分利用他們現(xiàn)有的企業(yè)開發(fā)語言技能。Visual Basic .NET,C#,和 JScript .NET,給開發(fā)者提供選擇語言的靈活度。增強的開發(fā)環(huán)境。開發(fā)人員使用任何文本編輯器,甚至是“記事本”,都可充分使用 ASP.NET 的全部功能。Visual Studio .NET 同樣提供調(diào)試與部署 ASP.NET Web 應用程序的集成支持。改善的性能。代碼與內(nèi)容分離的特性使得 ASP.NET 網(wǎng)頁被動態(tài)編譯至托管的類以獲得高性能。每個傳入的 HTTP 請求都被提交至一個新的頁面實例,因此開發(fā)人員不需要在代碼中關(guān)心線程安全問題。簡單快速的部署。ASP.NET 使用基于程序集的 Microsoft .NET 框架部署模型,也因此而由 xcopy 部署、程序集相鄰部署,以及基于 XML 的設(shè)置特性獲益。2.1.3 ADO簡介ActiveXDataObjects(ADO)是微軟最新的數(shù)據(jù)訪問技術(shù)。它被設(shè)計用來同新的數(shù)據(jù)訪問層OLEDBProvider一起協(xié)同工作,以提供通用數(shù)據(jù)訪問(UniversalDataAccess)。OLEDB是一個低層的數(shù)據(jù)訪問接口,用它可以訪問各種數(shù)據(jù)源,包括傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,以及電子郵件系統(tǒng)及自定義的商業(yè)對象。ADO向我們提供了一個熟悉的,高層的對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身份驗證連接時,需寫上用戶名UID和密碼password;用Windows身份驗證連接時,則不需寫用戶名UID和密碼password; 第三章 需求分析3.1系統(tǒng)功能需求分析對技術(shù)欄目的文章瀏覽和發(fā)表文章功能加以限制,論壇的管理功能尤為重要,將用戶化為不同級別,根據(jù)用戶級別的不同在論壇中為用戶分配不同的權(quán)限,同時一個成功的BBS系統(tǒng)的考察、分析,要求本系統(tǒng)具有以下特點: 要求系統(tǒng)具有良好的人機界面。 功能強大,操作簡單,擴展性強,穩(wěn)定性高。 系統(tǒng)無操作系統(tǒng)限制,方便不同平臺之間的移植。 網(wǎng)站最大速度的實現(xiàn)易維護性和易操作性。網(wǎng)站運行穩(wěn)定、安全可靠。3.2系統(tǒng)功能設(shè)計根據(jù)以上系統(tǒng)的需求分析,可以得出系統(tǒng)前臺和后臺要實現(xiàn)的功能主要如下所述。系統(tǒng)具體要實現(xiàn)的功能如下: l 用戶注冊l 用戶登錄l 用戶瀏覽帖子l 用戶發(fā)新帖l 用戶回復帖子l 用戶查看自己信息l 用戶修改自己的信息l 管理帖子信息:添加、刪除以及更改帖子信息l 管理用戶信息:添加、刪除以及更改用戶信息系統(tǒng)整體功能模塊如圖3-1所示:圖3-1 系統(tǒng)整體功能模塊圖3.3系統(tǒng)流程圖用戶進入網(wǎng)站首頁,可以瀏覽網(wǎng)站的所有信息,包括瀏覽、搜索相關(guān)信息。用戶要想發(fā)帖,必須首先成為本站的會員。如果用戶已經(jīng)是本網(wǎng)站會員,則只需登錄即可實現(xiàn)整個論壇的所有操作,除可以瀏覽外,還可以發(fā)新帖、回復帖子和管理自己的信息。管理員可以修改管理用戶信息和帖子信息。系統(tǒng)流程圖如圖3-2所示。圖3-2系統(tǒng)流程圖3.4數(shù)據(jù)庫設(shè)計3.4.1數(shù)據(jù)庫需求分析1用戶信息表:用戶編號、用戶名稱、用戶密碼、英文姓名、電子郵件、頭像2回帖子信息表:編號、回復編號、回復標題、回復內(nèi)容、回復人、回復時間3發(fā)帖信息表:帖子編號、帖子主題、帖子內(nèi)容、發(fā)帖人、創(chuàng)建日期、回復日期、瀏覽人數(shù)、置頂、人氣指數(shù)、文章類型4頭像信息表:頭像編號、頭像圖片3.4.2 E-R圖圖3-3發(fā)帖信息實體E-R圖圖3-4回帖信息實體E-R圖圖3-5頭像信息實體E-R圖圖3-6用戶信息實體E-R圖3.4.3數(shù)據(jù)庫表設(shè)計用戶信息表:用戶編號、用戶名稱、用戶密碼、英文姓名、電子郵件、頭像圖3-7用戶信息表回帖子信息表:編號、回復編號、回復標題、回復內(nèi)容、回復人、回復時間圖3-8回帖信息表發(fā)帖信息表:帖子編號、帖子主題、帖子內(nèi)容、發(fā)帖人、創(chuàng)建日期、回復日期、瀏覽人數(shù)、置頂、人氣指數(shù)、文章類型圖3-9發(fā)帖信息表頭像信息表:頭像編號、頭像圖片圖3-10頭像消息表第四章 校園生活BBS網(wǎng)站系統(tǒng)的實現(xiàn)過程4.1系統(tǒng)首頁實現(xiàn)4.1.1首頁展示首頁是網(wǎng)站的門戶,既要方便用戶使用,又要有創(chuàng)新,以便吸引更多用戶來論壇。因此,在設(shè)計首頁時,我將用戶最常用的幾個功能,如“會員注冊”、“帖子瀏覽”、“發(fā)新帖”、“用戶信息查詢”以及“修改用戶信息”等欄目設(shè)置在上導航欄中,“用戶登錄”、“注冊”等欄目設(shè)置在下面導航欄內(nèi),而網(wǎng)頁主體是帖子的標題以便用戶瀏覽。頁面示例如圖4-1所示。圖4-1網(wǎng)站首頁 管理員登錄后會顯示“管理帖子”,其余會員及游客進入不會顯示此區(qū)域。4.1.2網(wǎng)站首頁技術(shù)分析點擊“休閑娛樂”、“技術(shù)交流”、 “學科研究”、“求職信息”、“其他信息”。分別顯示不同類別下的帖子,這五個連接是用LinkButton控件完成的,不同類別下的帖子信息顯示用的是GridView控件實現(xiàn)的。點擊“學科研究”顯示如圖4-2所示:圖4-2 分區(qū)內(nèi)容顯示BBS網(wǎng)站首頁主要應用了GridView控件的兩個關(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è)置一個值,該值顯示是否啟用分頁功能。DataSource屬性:獲取或設(shè)置對象,數(shù)據(jù)綁定控件從該對象中檢索其數(shù)據(jù)項列表。DataKeyNames屬性:獲取或設(shè)置一個組合,該數(shù)據(jù)組包含了顯示在GridView控件中的項的主鍵字段的名稱。DataKeys屬性:獲取一個DataKey對象集合,這些對象表示GridView控件中每一行的數(shù)據(jù)鍵值。PageCount屬性:獲取在GridView控件中顯示數(shù)據(jù)源記錄所需的頁數(shù)。PageIndex屬性:獲取或設(shè)置當前顯示頁面的索引。PageSize屬性:獲取或設(shè)置GridView控件在每一頁面上所顯示的記錄數(shù)目。PageIndexChanging屬性:在單擊某一頁面導航一按鈕時,在GridView控件處理分頁操作之前發(fā)生。根據(jù)以上技術(shù)分析,在應用程序中應用GridView控件來綁定注冊用戶發(fā)表的帖子的相關(guān)信息,如帖子標題、發(fā)帖作者、人氣指數(shù)等。調(diào)用用戶自定義方法aa(),首先創(chuàng)建一個新的數(shù)據(jù)庫連接對象,并初始化一個SqlCommand命令對象,然后通過SqlDataAdapter(數(shù)據(jù)適配器)的Fill 方法填充創(chuàng)建的DataSet數(shù)據(jù)集,最后以Databind方法綁定數(shù)據(jù)庫中數(shù)據(jù),以顯示注冊會員發(fā)表的貼的相關(guān)信息。主要代碼如圖4-3:圖4-3gvlt就是給GridView控件起的名稱。在應用程序中應用GridView控件自帶的分頁技術(shù)時,首先將GridView控件的AllowPaging屬性設(shè)置為True,以允許該控件分頁,然后觸發(fā)其PageIndexChanging事件,并在該事件中編寫GridView控件分頁的代碼。如圖4-4所示:圖4-4PageIndex屬性:獲取或設(shè)置所顯示的記錄的索引;NewPageIndex屬性:獲取用戶在GridView控件的頁選擇元素中選定的頁的索引。4.1.3網(wǎng)站首頁的實現(xiàn)過程本模塊使用的數(shù)據(jù)庫表為:tb_Users,tb_Content1.設(shè)計步驟下面對網(wǎng)站首頁的制作過程進行詳細的講解,具體步驟如下:(1)在應用程序中新建一個Web窗體,命名為Default.aspx,該頁面主要用于顯示網(wǎng)站首頁的相關(guān)信息。(2)在Web窗體的區(qū)域內(nèi)添加一個Table,用于頁面的整體布局,并在用戶控件窗體的區(qū)域內(nèi)放一個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è)置為“修改當前用戶信息”顯示“修改當前用戶信息”文字信息2.實現(xiàn)代碼首先在后臺代碼的命名空間區(qū)域內(nèi),添加如下命令空間:如圖4-5所示:圖4-5在Page_Load事件中,通過CompareTo方法將系統(tǒng)時間域設(shè)定的時間13小時進行比較,來獲取相應的問候語。如果系統(tǒng)時間比設(shè)定的時間13小時小,將顯示“上午好!”;如果系統(tǒng)時間比設(shè)定的時間13小時大,將顯示“下午好!”;其他情況顯示“中午好!”。主要代碼為,如圖4-6所示:圖4-6注釋:Session:是ASP和ASP.NET中用于保持狀態(tài)的基于Web服務(wù)器的方法,Session允許通過將對象存儲在Web服務(wù)器的內(nèi)存中在整個用戶會話過程中保持任何對象。Session通常用于執(zhí)行以下操作:存儲需要在整個用戶會話過程中保持其狀態(tài)的信息,存儲只需要在頁面重新加載過程中或按功能分組的一組頁面之間保持其狀態(tài)的對象。Session的作用就是它在Web服務(wù)器上保持用戶的狀態(tài)信息提供在任何時間從任何頁面訪問,因為瀏覽器不需要存儲任何這種信息,所以可以使用任何瀏覽器,即使是像PDA或手機這樣的瀏覽器設(shè)備。實現(xiàn)GridView控件分頁功能時,首先需要將GridView控件的AllowPaging屬性設(shè)置為True,以允許該控件分頁,然后觸發(fā)PageIndexChanging事件,并在該事件中編寫GridView控件分頁的代碼。如圖4-7所示: 圖4-7在論壇首頁功能實現(xiàn)中,注冊的會員及網(wǎng)站管理員都可在同一登錄窗口輸入各自的相關(guān)信息進入相應功能頁面。單擊頁面中的“登錄”按鈕,觸發(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í)行的一個Transact-SQL語句或存儲過程。ExecuteScalar:執(zhí)行查詢,并返回查詢所返回的結(jié)果集中的第一行第一列,其他的行列忽略。4.2用戶注冊管理4.2.1注冊信息頁概述要在論壇中發(fā)表帖子必須注冊成會員。在網(wǎng)站首頁中單擊“注冊”按鈕,進入注冊頁面,在其中根據(jù)提示輸入相關(guān)信息。另外,注冊的用戶可以選擇自己喜歡的有個性的頭像在論壇中代表自己的形象。完成以上操作,單擊“保存”按鈕,系統(tǒng)核對后即可注冊為會員。點擊“”按鈕,進入如下頁面如圖4-8所示: 圖4-8用戶注冊協(xié)議 圖4-9新用戶注冊信息點擊“”即進入如圖4-9所示:如果是已經(jīng)注冊了的名稱,系統(tǒng)會提示如圖4-10所示。注冊成功,后會顯示如圖4-11所示。 圖4-10重名提示 圖4-11成功提示4.2.2注冊信息頁面技術(shù)分析在網(wǎng)上在線論壇中,當用戶填寫完注冊信息,單擊“保存”按鈕時,程序會將用戶填寫的數(shù)據(jù)保存到用戶信息表中,同時,程序還會向另一個數(shù)據(jù)表中存入本次注冊操作的日志信息。為了避免在這個操作過程中由于意外原因造成操作失誤,在程序中存入了事務(wù)。事務(wù)處理可以避免某種原因而導致數(shù)據(jù)的錯誤,確保插入數(shù)據(jù)最終結(jié)果的確定性和數(shù)據(jù)的一致性。 在注冊信息頁面中,應用SqlConnection對象的BeginTransaction方法創(chuàng)建名為st的SqlTransaction對象,然后將該對象分配給SqlCommand對象的Transaction屬性,最后通過該對象的Commit方法提交事務(wù),利用SqlTransaction對象的Rollback方法回滾事務(wù)。在ADO.NET中可通過連接類的BeginTransaction方法創(chuàng)建一個全新的本地事務(wù),可以為該事務(wù)賦予一個名稱和一個隔離級。BeginTransaction方法:該方法用于開始數(shù)據(jù)庫事務(wù)。返回值:表示新事務(wù)的對象。Transaction:用于獲取或設(shè)置將在其中執(zhí)行SqlCommand的SqlTransaction。屬性值:SqlTransaction默認為空引用。Commit方法:用于提交數(shù)據(jù)庫事務(wù)。Rollback方法:用于從掛起狀態(tài)回滾事務(wù)。在以上方法中為了向事務(wù)添加命令回滾,設(shè)置了命令對象的Transaction屬性,但如果把一個命令對象的Transaction屬性設(shè)置到了一個不是連接到同一個連接的事務(wù)對象,在試圖執(zhí)行一個語句時將會拋出一個異常,一旦所有的命令完成執(zhí)行,調(diào)用事務(wù)對象的Commit方法完成,或者調(diào)用Rollback方法撤銷該事務(wù),并回滾所有的變更。通過使用Commit或Rollback方法,可顯式地終止一個事務(wù)。SqlTransaction類支持事務(wù)中有名稱的保存點(named savepoint),用它可以恢復事務(wù)的某一部分。有名稱的保存點利用一個特定的SQL Server 特性:SAVE TRANSACTION語句。4.2.3注冊信息頁面實現(xiàn)過程1.設(shè)計步驟下面對網(wǎng)站首頁的制作過程進行詳細的講解。具體步驟如下:在應用程序中首先創(chuàng)建一個名為zhucexinxi的文件夾,在該文件夾下創(chuàng)建一個Web窗體,命名為zhuce.aspx,該頁主要顯示用戶注冊的相關(guān)信息。在Web窗體的區(qū)域內(nèi)添加一個Table,用于頁面的整體布局,并在用戶控件窗體的區(qū)域內(nèi)拖放一個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無當用戶選擇DropDownList下拉列表框中的頭像路徑時,將該頭像的圖片綁定到Image控件中,并顯示出來RequireFieldValidatorRfvnameControlToValidate屬性設(shè)置為“txtname”, Display屬性設(shè)置為Dynamic(表示驗證控件中錯誤信息的不同顯示行為。Display有3個值,分別是NoneStaticDynamic)ErrorMessage屬性設(shè)置為“用戶姓名不能為空”(當文本框中沒有輸入任何信息時,將顯示用戶名不能為空)當TextBox控件中沒有輸入任何信息時將顯示“用戶名不能為空”2.代碼實現(xiàn):引入命名空間,代碼如下:using System.Data.SqlClient;在page_load事件中,根據(jù)傳過來的變量Id的中值查詢頭像信息表,主要通過SqlDataAdapter類實現(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)建并返回與當前連接關(guān)聯(lián)的DBCommand對象。Commit方法:提交事務(wù)。在注冊過程中選擇標識自己的頭像時,應用到了一個DropDownList控件,在該控件中觸發(fā)其SelectedIndexChanged事件,將該控件中選擇的值傳送到Image控件當中。如圖4-13所示:圖4-13在該注冊頁中,添加了一個“返回首頁”的超鏈接,用于將頁面跳轉(zhuǎn)到網(wǎng)站首頁。如圖4-14所示:圖4-144.3用戶登錄管理輸入用戶名和密碼,系統(tǒng)檢測用戶名是否存在,如果不存在,則跳到注冊頁面,如果存在,則進入數(shù)據(jù)庫,查詢用戶名和密碼是否一致,如果有一個不準確,則顯示如圖4-15所示,如果都正確,則顯示如圖4-16所示。流程圖如圖4-17和圖4-18所示。 圖4-15 圖4-16 圖4-17 圖4-184.4瀏覽帖子詳細信息頁面設(shè)計4.4.1瀏覽帖子詳細信息頁面概述在網(wǎng)站首頁的帖子信息列表中,當用戶單擊某條帖子后面的“詳細信息”超鏈接時,即可進入到該帖子的詳細信息頁面中。瀏覽該帖子的詳細信息頁面的運行效果如圖4-19所示:圖4-19帖子詳細信息頁面4.4.2瀏覽帖子詳細信息頁面技術(shù)分析網(wǎng)上在線論壇的瀏覽帖子詳細信息頁面中,主要用到了DataList控件的兩個關(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ù)列表控件中每個記錄的鍵值。DataMember屬性:獲取或設(shè)置多成員數(shù)據(jù)源中要綁定到數(shù)據(jù)列表控件的特定數(shù)據(jù)成員。DataSource屬性:獲取或設(shè)置數(shù)據(jù)源,該數(shù)據(jù)源中包括用于填充控件中的項的值列表。(2)DataList控件的刪除功能 在開發(fā)像博客、論壇這樣的網(wǎng)站時,通常都有一個模塊允許注冊用戶對某些文章發(fā)表自己的觀點,但為了防止惡意攻擊,需要對一些數(shù)據(jù)進行清理,管理員在查看帖子信息時,可以直接在某條留言信息上單擊“刪除”按鈕將其刪除。網(wǎng)上在線論壇網(wǎng)站中通過在DataList控件中使用LinkButton控件,實現(xiàn)對文章評論的刪除功能。 本頁面中主要實現(xiàn)DataList控件中信息的刪除功能,其相關(guān)屬性和事件說明如下:CommandName屬性:該屬性可以分為分別設(shè)置為Cancel、Delete、Edit、Selete和Update,分別用來表示“取消”命令名,“刪除” 命令名,“編輯” 命令名,“選擇”“修改” 命令名。ItemCommand事件:在用戶選擇與項關(guān)聯(lián)的命令時發(fā)生。ItemDtatBound屬性:當項被數(shù)據(jù)綁定到DataList控件時發(fā)生。 網(wǎng)上在線論壇中瀏覽帖子詳細信息頁面中的DataList控件實現(xiàn)刪除功能的事件是寫在ItemCommand事件中的,前提是必須將LinkButton控件中的CommandName屬性的值設(shè)置一下,然后在ItemCommand事件中只要判斷CommandName屬性的值即可。如果不想在ItemCommand事件中寫刪除語句,也可在DataList控件中實現(xiàn)刪除功能,通過設(shè)置LinkButton控件的CommandName屬性為Delete,并觸發(fā)DataList控件的DeleteCommand事件,因此可以將語句寫在DeleteCommand事件中。4.4.3瀏覽帖子詳細信息頁面實現(xiàn)過程1.設(shè)計步驟下面對瀏覽帖子詳細信息頁面的制作過程進行詳細的講解,具體步驟如下:在應用程序中首先創(chuàng)建一個名為tiezixinxi的文件夾,在該文件夾下創(chuàng)建一個Web窗體,命名為chakan.aspx,該頁主要用于顯示論壇用戶發(fā)表的帖子信息。在Web窗體的區(qū)域內(nèi)添加一個DataList控件,用于顯示帖子的詳細信息。在DataList控件中添加顯示帖子詳細信息用到的控件,在DataList控件中涉及的主要控件、控件屬性及用途如表4-3所示:表4-3 chakan.aspx頁中用到的主要控件控件類型控件ID主要屬性設(shè)置用途TextBoxTextBox1TextMode屬性設(shè)置為MultiLine將帖子內(nèi)容詳細信息綁定到TextBox控件中DataListDlxx無用于顯示帖子的詳細內(nèi)容LinkButtonLinkButton1 Text屬性設(shè)置為“我要回復”,CommandName屬性設(shè)置為hf顯示“用戶信息管理”文字信息(單擊LinkButton控件將信息傳遞給回帖信息表中)LinkButtonLinkDeleteText屬性設(shè)置為“刪除此帖”,CommandName屬性設(shè)置為sc顯示“用戶信息管理”文字信息(單擊LinkButton控件將刪除DataList控件中的帖子信息)LabellblnameText屬性設(shè)置為“發(fā)帖人名”顯示“發(fā)帖人名”的文字信息Labellblbh無用于綁定帖子編號的詳細信息ImageImgtx無用于綁定帖子的頭像信息的照片2實現(xiàn)代碼:引入命名空間,代碼如下:using System.Data.SqlClient;在頁面的page_load事件中,調(diào)用綁定帖子信息表的用戶自定義aa方法,將帖子信息顯示到DataList控件中。調(diào)用綁定回復帖子信息表的用戶自定義hfbind方法,將回復帖子信息顯示到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對象:獲取當前請求所對應的內(nèi)部請求對象。SqlConnection類:表示SQL Server 數(shù)據(jù)庫一個打開的連接。Fill方法:在DataSet中添加或刷新行以匹配使用DataSet名稱的數(shù)據(jù)源的行,并創(chuàng)建一個DataTable。DataBind方法:將數(shù)據(jù)源綁定到被調(diào)用的服務(wù)器控件及其所有子控件。在DataList1_ItemCommand事件中,首先判斷CommandName的值是否是hf,也就是單擊“回復信息”超鏈接,然后判斷是否登錄,如沒有登錄,將頁面跳轉(zhuǎn)到登錄頁面中,如果已經(jīng)登錄則根據(jù)SqlDataReader對象的應用,將回復信息的標題和回復信息的編號讀取出來,并加以顯示。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::存儲需要在整個用戶會話過程中保持其狀態(tài)的信息。Response:提供當前頁的輸出流的訪問。Redirect方法:獲取或設(shè)置重定向URL。Read:獲取或設(shè)置該字符串值所指定環(huán)境變量的讀訪問權(quán)限。4.5回復帖子頁面設(shè)計4.5.1回復帖子頁面概述回復帖子和瀏覽帖子詳細內(nèi)容在同一個頁面中,目的是當單擊帖子詳細信息頁面的“”超鏈接后,在回復帖子頁面的最下方顯示一個回帖信息,這時便可以回帖了?;貜吞拥捻撁孢\行效果如圖4-20所示:圖4-20回復帖子頁面4.5.2回復帖子頁面技術(shù)分析網(wǎng)上在線論壇的回復帖子頁面中,主要設(shè)計DataList控件的利用內(nèi)連接查詢技術(shù),利用DataList控件實現(xiàn)分頁技術(shù)和DataList控件的數(shù)據(jù)綁定技術(shù)。下面將對以上技術(shù)作詳細介紹:(1)內(nèi)連接查詢技術(shù) 同時顯示兩張表的信息,就需要使用內(nèi)連接,內(nèi)連接INNER JOIN只返回同時和兩個表或結(jié)果集匹配的數(shù)據(jù)行。內(nèi)連接是用比較運算符比較要連接列的值的連接,在SQL92標準中,內(nèi)連接可在FROM或WHERE子句中指定。內(nèi)連接又稱對等連接,它返回兩個表中的所有的列,但只返回在連接列中具有相等值的行。(2)DataList控件實現(xiàn)分頁技術(shù)在開發(fā)論壇網(wǎng)站時,常常需要在頁面中比較全面的顯示一些信息,但如果要顯示的信息記錄過多,用一個頁面顯示所有的記錄會給用戶帶來很大的不便,為了解決這個問題,DataList控件的分頁技術(shù)可以限定一個頁面中顯示的記錄數(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年云南省農(nóng)業(yè)農(nóng)村廳下屬事業(yè)單位真題
- 城市交通需求預測重點基礎(chǔ)知識點
- 江蘇省東臺市第四教育聯(lián)盟2025屆八下數(shù)學期末預測試題含解析
- 2024年山西能源學院輔導員考試真題
- 2024年重慶石柱縣融媒體中心招聘筆試真題
- 班級故事分享平臺的建立計劃
- 2024年湖北省農(nóng)業(yè)農(nóng)村廳下屬事業(yè)單位真題
- 2024年南平市太平鎮(zhèn)衛(wèi)生院招聘筆試真題
- 2024年牡丹江穆棱市鄉(xiāng)村醫(yī)生招聘筆試真題
- 2024年福建福州榕發(fā)物業(yè)發(fā)展有限公司招聘真題
- 2024年山東出版集團有限公司招聘筆試參考題庫含答案解析
- 氮化鎵射頻器件
- 習題課 理想氣體的狀態(tài)方程及狀態(tài)變化圖像
- 手術(shù)室甲狀腺切除術(shù)手術(shù)配合護理查房
- 建筑工程各類材料送檢取樣規(guī)范(資料員)
- 六年級下冊綜合實踐活動教案-我愛閱讀 全國通用
- Rexroth (博世力士樂)VFC 3610系列變頻器使用說明書
- 余華《活著》賞析ppt
- 第8章-GNSS測量與定位-課件
- 衛(wèi)生院外傷處置方案
- 某地面工程電力安裝EC總承包工程技術(shù)文件
評論
0/150
提交評論