




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔傾情為你奉上精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)專心專注專業(yè)精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)個(gè)人博客摘 要 隨著Internet的廣泛應(yīng)用,動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)也應(yīng)運(yùn)而生。本文介紹了應(yīng)用ASP動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)開(kāi)發(fā)博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。該系統(tǒng)以ASP.NET為開(kāi)發(fā)技術(shù),使用C#為開(kāi)發(fā)語(yǔ)言,實(shí)現(xiàn)Blog網(wǎng)站的動(dòng)態(tài)管理,使得對(duì)Blog信息的管理更加及時(shí)、高效,提高了工作效率。本文對(duì)博客系統(tǒng)進(jìn)行整體分析,明確了系統(tǒng)的可行性和用戶需求;根據(jù)模塊化原理,規(guī)劃設(shè)計(jì)了系統(tǒng)功能模塊;在數(shù)據(jù)庫(kù)設(shè)計(jì)部分,詳細(xì)說(shuō)明了系統(tǒng)數(shù)據(jù)庫(kù)的結(jié)構(gòu)和數(shù)據(jù)庫(kù)的完整性、安全性措施;程序設(shè)計(jì)則采用面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,提出系統(tǒng)的程序
2、設(shè)計(jì)思路,對(duì)前臺(tái)與后臺(tái)功能的程序?qū)崿F(xiàn)進(jìn)行了詳細(xì)論述;系統(tǒng)測(cè)試部分,具體分析測(cè)試過(guò)程中出現(xiàn)的主要問(wèn)題,并提出了解決方案,實(shí)現(xiàn)系統(tǒng)功能。關(guān)鍵詞 Blog;ASP.NET;C#;SQLserverPersonal BlogAbstractWith the extensive application of the Internet, dynamic web technology has emerged. This text describes the application of ASP dynamic web technology and development the blog system.Th
3、is system take ASP.NET as the development technology, uses C# is the development language, realizes the Blog website dynamic management, causes to be even more prompt to the Blog information management, highly effective, raised the working efficiency. In this text,it analysis the blog system by feas
4、ibility and the demand of the user. Under the modular theory, planning and design of the system functional modules; In the database design, a detailed description of the database structure and database integrity, security measures; Programming is used object-oriented programming design, system desig
5、n ideas, background for the future and function of the program in detail; System testing, Analysis of the specific course of testing the key issues and proposed solutions to achieve system function. Key word Blog;ASP.NET; C#;SQLserver目 錄 TOC o 1-3 h z u 第一章 緒論1.1 引言Blog,是Weblog的簡(jiǎn)稱。Weblog,其實(shí)是Web和Log的
6、組合詞。Web,指World Wide Web,當(dāng)然是指互連網(wǎng)了;Log的原義則是“航海日志”,后指任何類型的流水記錄。合在一起來(lái)理解,Weblog就是在網(wǎng)絡(luò)上的一種流水記錄形式或者簡(jiǎn)稱“網(wǎng)絡(luò)日志”。Blogger或Weblogger,是指習(xí)慣于日常記錄并使用Weblog工具的人。雖然在大陸早些時(shí)候或者臺(tái)灣等地,對(duì)此概念的譯名不盡相同(有的稱為“網(wǎng)志”,有的稱之為“網(wǎng)錄”等等),但目前已基本統(tǒng)一到“博客”一詞上來(lái)。該詞最早是在2002年8月8日由著名的網(wǎng)絡(luò)評(píng)論家王俊秀和方興東共同撰文提出來(lái)的。博客也好,網(wǎng)志也罷,僅僅是一種名稱而已,它的本義還是逃不過(guò)Weblog的范圍。只是,通常我們所說(shuō)的“博
7、客”,既可用作名詞Blogger或weblogger指具有博客行為的一類人;也可以作動(dòng)詞用(相當(dāng)于英文中的Weblog或blog),指博客采取的具有博客行為反映、是第三方可以用視覺(jué)感受到的行為,即博客們所撰寫的Blog。因此,“他/她是一位博客,他/她天天在博客”及“博客博什么客?”在中文語(yǔ)法與邏輯上都是正確。只是不同場(chǎng)合的用法不同罷了。本系統(tǒng)由開(kāi)發(fā),更多內(nèi)容請(qǐng)參閱公司官網(wǎng)。Blog究竟是什么?說(shuō)了半天,其實(shí)一個(gè)Blog就是一個(gè)網(wǎng)頁(yè),它通常是由簡(jiǎn)短且經(jīng)常更新的帖子(Post)所構(gòu)成,這些張貼的文章都按照年份和日期倒序排列。Blog的內(nèi)容和目的有很大的不同,Blog的內(nèi)容和目的有很大的不同,從對(duì)
8、其他網(wǎng)站的超級(jí)鏈接和評(píng)論,有關(guān)公司、個(gè)人、構(gòu)想的新聞到日記、照片、詩(shī)歌、散文,甚至科幻小說(shuō)的發(fā)表或張貼都有。許多Blogs記錄著blog個(gè)人所見(jiàn)、所聞、所想,還有一些Blogs則是一群人基于某個(gè)特定主題或共同利益領(lǐng)域的集體創(chuàng)作。撰寫這些Weblog或Blog的人就叫做Blogger或Blog writer。 博客存在的方式,一般分為三種類型:一是托管博客,無(wú)須自己注冊(cè)域名、租用空間和編制網(wǎng)頁(yè),博客們只要去免費(fèi)注冊(cè)申請(qǐng)即可擁有自己的博客空間,是最“多快好省”的方式。如英文的、及多種語(yǔ)言的博客室()等都提供這樣的服務(wù);二是自建獨(dú)立網(wǎng)站的博客,有自己的域名、空間和頁(yè)面風(fēng)格,需要一定的條件。如方興東建
9、立的“博客中國(guó)”站();三是附屬博客,將自己的博客作為某一個(gè)網(wǎng)站的一部分(如一個(gè)欄目、一個(gè)頻道或者一個(gè)地址)。這三類之間可以演變,甚至可以兼得,一人擁有多種博客網(wǎng)站。目前進(jìn)行網(wǎng)站開(kāi)發(fā)的語(yǔ)言很多,如ASP、PHP、JSP、ASP.NET等。究竟應(yīng)該選擇什么語(yǔ)言來(lái)開(kāi)發(fā)一個(gè)BLOG網(wǎng)站呢,對(duì)于一個(gè)中小型的網(wǎng)站來(lái)說(shuō),ASP無(wú)疑是最好的選擇,利用簡(jiǎn)單的HTML代碼與腳本融合而成的ASP技術(shù)可以開(kāi)發(fā)強(qiáng)大的Web應(yīng)用程序。ASP(Active Sever Pages)是Microsoft推出的一種服務(wù)器端腳本環(huán)境,ASP內(nèi)嵌于IIS中,讓用戶可以輕松的結(jié)合HTML Web頁(yè)面、腳本和ActiveX組件建立或
10、執(zhí)行動(dòng)態(tài)的、交互的Web服務(wù)器應(yīng)用程序。ASP并不單指某一種編程語(yǔ)言,而是一門把HTML代碼與VBScript和JavaScript等腳本語(yǔ)言融合在一起的技術(shù),ASP技術(shù)的誕生,應(yīng)該說(shuō)是一項(xiàng)成功的技術(shù),它開(kāi)創(chuàng)了非專業(yè)人員開(kāi)發(fā)高水平網(wǎng)站的歷史。1.2 課題研究的意義博客的精神是:自由表達(dá),開(kāi)放寬容,個(gè)性張揚(yáng),專業(yè)精神。在沒(méi)有自己的博客之前,人們會(huì)經(jīng)常進(jìn)出于論壇發(fā)表貼子或者通過(guò)即時(shí)通信軟件聊天,來(lái)表達(dá)自已的想法,可是這些都是零散的和雜亂的。博客的出現(xiàn),讓人們可以不斷的把自己以前的和每天激發(fā)的一些想法或者感受整理放在自己的博客上,每次在寫文章的時(shí)候,可能又會(huì)產(chǎn)生新的想法。雖然一些想法一些思考只是皮毛
11、,沒(méi)有什么深度,但是當(dāng)下筆去寫的時(shí)候每次都會(huì)對(duì)某個(gè)小小的問(wèn)題有了更多的一點(diǎn)點(diǎn)思考,再寫博客的時(shí)候就感覺(jué)到了一種滿足感,一種想法得以釋放思考得以延伸的滿足感。生活中每天的一個(gè)小小的事情都會(huì)引起人們的思考,甚至是和朋友的聊天中一個(gè)小小的火花迸發(fā)。督促自己努力、把一時(shí)的想法變成觀點(diǎn),爭(zhēng)取在生命中的每天里留下點(diǎn)什么,這也是人們寫博客的目的之一。這樣就能督促自己每一天不要渾渾噩噩,時(shí)光流逝無(wú)痕無(wú)聲無(wú)息,寫博客也是在自己的每一天上留下了一道淺淺的思考和劃痕。如果說(shuō)博客網(wǎng)站是一個(gè)舞臺(tái),那么所有的博客都是其中的舞者,把自己有價(jià)值的真實(shí)的一面展示在網(wǎng)絡(luò)世界中,相互交流溝通; 如果博客僅僅為了寫日志,那么博客是一
12、面鏡子,鏡子中展現(xiàn)的是真實(shí)的自己;如果博客是一個(gè)自由媒體,可以把自身感覺(jué)有價(jià)值的信息通過(guò)博客這個(gè)工具發(fā)布,與網(wǎng)友共享隨著B(niǎo)log人數(shù)的增加,Blog作為一種新的生活方式、新的工作方式和新的學(xué)習(xí)方式已經(jīng)被越來(lái)越多的人所接受,并且在改變傳統(tǒng)的網(wǎng)絡(luò)和社會(huì)結(jié)構(gòu)。它使交流和溝通更有明確的選擇和方向性;單一的思想和群體的智慧結(jié)合變得更加有效;個(gè)人出版變成人人都可以實(shí)現(xiàn)的夢(mèng)想。Blog正在影響和改變著我們的生活。Blog是以網(wǎng)絡(luò)作為載體,簡(jiǎn)易迅速便捷地發(fā)布自己的心得,及時(shí)有效輕松地與他人進(jìn)行交流,再集豐富多彩的個(gè)性化展示于一體的綜合性平臺(tái)。展示豐富的個(gè)性化,對(duì)Blog功能的要求自然更高,新一代具有更多、更新
13、、更全功能的Blog急需走進(jìn)舞臺(tái)。系統(tǒng)加入聊天功能可以更加方便大家的交流。 博客有以下用途:(1)促進(jìn)學(xué)習(xí)。寫blog可以促進(jìn)學(xué)習(xí),想寫出文章來(lái),自然不能是泛泛的了解就可以的,要理解了才能寫得出來(lái)的。這就促進(jìn)了對(duì)某些領(lǐng)域的不斷學(xué)習(xí)和思考。 (2)記錄收獲。blog中,常常是記錄下來(lái)都是瞬間的靈感,對(duì)事物的感悟,經(jīng)過(guò)多日思考和實(shí)踐的結(jié)果,對(duì)某個(gè)問(wèn)題的解決方案等等,這些都是財(cái)富,要記錄下來(lái)。 (3)反映成長(zhǎng)。寫blog,可以反映出人的思考過(guò)程,而不僅僅是思考結(jié)果。對(duì)一個(gè)問(wèn)題或領(lǐng)域,從不了解到了解,從了解到熟悉,從熟悉到精通。這紀(jì)錄了一個(gè)人思考和解決問(wèn)題的成長(zhǎng)過(guò)程。很久之后,看到自己之前的文章,你將
14、會(huì)覺(jué)得自己進(jìn)步了。 (4)結(jié)交朋友。寫了blog,自然會(huì)有許多志趣相同的朋友來(lái)閱讀,這可以認(rèn)識(shí)許多朋友。大家有共同的興趣愛(ài)好,自然談得來(lái)。 (5)共享知識(shí)。blog給大家看,大家的blog也給你看。這個(gè)問(wèn)題我解決了,那個(gè)問(wèn)題他解決了。大家互通有無(wú),建立起一個(gè)社群。 (6)交流看法?;貜?fù)的人對(duì)blog的觀點(diǎn)或贊同,或反對(duì),大家一起討論,聽(tīng)聽(tīng)別人的思想,可以促進(jìn)雙方的共同進(jìn)步。 (7)包裝自己。看到一篇篇用心寫出的文章,自然是對(duì)自己知識(shí)技能的最好宣傳。1.3 系統(tǒng)概述一個(gè)博客其實(shí)就是由一序列網(wǎng)頁(yè)組成的,它通常是由簡(jiǎn)短且經(jīng)常更新的帖子所構(gòu)成的,這些張貼的文章都按照年份和日期倒序列排列,能按照日期和主
15、題檢索。博客的內(nèi)容和目的有很大的不同,有到其他網(wǎng)站的超級(jí)鏈接;有對(duì)其他網(wǎng)站的評(píng)論;有個(gè)人的日記,日常所思所想;有個(gè)人照片、詩(shī)歌、散文,甚至科幻小說(shuō)的發(fā)表。正是由于博客能收容這些不拘于個(gè)人思想的表達(dá),使博客這種交流和表達(dá)方式日益紅火起來(lái),博客秉承了個(gè)人網(wǎng)站的自由精神,也開(kāi)拓了激發(fā)創(chuàng)造的新模式,能張揚(yáng)人的個(gè)性,從這個(gè)意義上說(shuō),博客將會(huì)變得越來(lái)越普及,越來(lái)越為更多的人接受。本系統(tǒng)主要完成以下功能。1客戶界面部分我的文章給我留言用戶注冊(cè)/登錄首頁(yè):文章分類,最新評(píng)論,最新文章,最新加入2管理界面部分添加分類分類管理文章管理留言管理基本設(shè)置第二章 相關(guān)技術(shù)介紹2.1 ASP.NET技術(shù)概論本系統(tǒng)采用AS
16、P.NET開(kāi)發(fā)技術(shù)進(jìn)行開(kāi)發(fā)。ASP.NET不僅僅是ASP的一個(gè)新版本,更是Web應(yīng)用程序編程方面的一個(gè)全新的概念和方法。ASP.NET中的新功能并不是對(duì)ASP的改進(jìn),設(shè)計(jì)它的初衷是為用戶入境提供最佳的應(yīng)用程序架構(gòu)。它相比于ASP有著以下幾個(gè)方面的優(yōu)點(diǎn): (1)多語(yǔ)言ASP曾在腳本引擎方面受到了限制,特別是VBScript和Jscript。而ASP.NET則支持多種語(yǔ)言,默認(rèn)情況下為Visual Basic.NET、C#和Jscript.NET,另外還支持一些第三方語(yǔ)言。(2)服務(wù)器處理ASP在服務(wù)器處理上不管頁(yè)面的內(nèi)容是純HTML還是ASP生成的HTML,它都是按照實(shí)現(xiàn),形成所謂3-tier頁(yè)
17、面順序顯示的。因此邏輯代碼依賴于它在頁(yè)面中的位置,并且無(wú)法將HTML控件作為目標(biāo),除非將它們作為流的一部分進(jìn)行顯示。而ASP.NET就解決了這個(gè)問(wèn)題,方法是為控件引入一個(gè)聲明的基于服務(wù)器的模型,因?yàn)榭丶诜?wù)器上有,可以在服務(wù)器上編程,也可以是客戶端驅(qū)動(dòng)的事件。(3)Web Form控件將現(xiàn)有的HTML控件轉(zhuǎn)換為服務(wù)器端的控件是比較容易的,但是也存在一些不方便,例如比較難于區(qū)分HTML控件和服務(wù)器端的控件。于是Microsoft公司就創(chuàng)建了一組專門的服務(wù)器控件,它們都用asp:前綴標(biāo)識(shí)。(4)代碼與內(nèi)容分離一個(gè)網(wǎng)站的設(shè)計(jì)與開(kāi)發(fā)往往由不同的人來(lái)實(shí)現(xiàn)的,而ASP中就是存在著這樣一個(gè)問(wèn)題,代碼(AS
18、P腳本)和內(nèi)容(HTML)混合在一起。這樣就使得同時(shí)進(jìn)行設(shè)計(jì)和開(kāi)發(fā)變得很困難。而ASP.NET則采用了代碼內(nèi)聯(lián)和后臺(tái)編碼兩種方法實(shí)現(xiàn)了代碼與內(nèi)容的分離。2.2 ASP.NET工作原理在多數(shù)場(chǎng)合下,能夠?qū)SP.NET版面容易地當(dāng)做等閑的HTML版面,版面包括符號(hào)有特異處理措施的一些代碼段。當(dāng)安裝.NET時(shí),本地的IIS Web服務(wù)器積極搭配成查找伸展名為.aspx的文件,且用ASP.NET模塊(名為aspnet_isapi.dll的文件)處理這些文件。從技巧上講,ASP.NET模塊分析ASPX文件的內(nèi)容,并將文件內(nèi)容分解成獨(dú)自的號(hào)召以發(fā)生代碼的大局構(gòu)造。告終此工作后,ASP.NET模塊將各號(hào)召
19、放置到預(yù)定義的類定義中(無(wú)須要放在同時(shí),也無(wú)須要按編寫次序放置)。然后利用這個(gè)類定義一個(gè)特異的ASP.NET對(duì)象Page。該對(duì)象要告終的任務(wù)之一即便生成HTML流,這些HTML流能夠歸來(lái)到IIS,再?gòu)腎IS歸來(lái)到客戶。簡(jiǎn)言之,在用戶哀求IIS服務(wù)器供給一個(gè)版面時(shí),IIS服務(wù)器就依據(jù)版面上的文本、HTML和代碼(這對(duì)我們來(lái)說(shuō)是最重要的)發(fā)生該版面。2.3 數(shù)據(jù)庫(kù)選擇數(shù)據(jù)庫(kù)(Database),是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),是用于查詢的大量數(shù)據(jù)的存儲(chǔ)區(qū)域。使用數(shù)據(jù)庫(kù)可以帶來(lái)許多好處:如減少了數(shù)據(jù)的冗余度,從而大大地節(jié)省了數(shù)據(jù)的存儲(chǔ)空間,實(shí)現(xiàn)數(shù)據(jù)資源的充分共享等等。近年來(lái)推出的計(jì)算機(jī)關(guān)
20、系數(shù)據(jù)庫(kù)管理系統(tǒng),還具有操作直觀,使用靈活,編程方便,功能強(qiáng)大,環(huán)境適應(yīng)廣泛,數(shù)據(jù)處理能力極強(qiáng)等諸多優(yōu)點(diǎn)??偟膩?lái)說(shuō),數(shù)據(jù)庫(kù)的設(shè)計(jì)對(duì)系統(tǒng)的經(jīng)濟(jì)性、功能性和效率有很大的影響,一個(gè)好的數(shù)據(jù)庫(kù),要求在設(shè)計(jì)時(shí)盡量避免數(shù)據(jù)的多余,另外,還要盡可能提高數(shù)據(jù)的存取速度。數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)速度與空間在范式上是相互矛盾的。一方面按規(guī)范化理論的要求,關(guān)系模式應(yīng)盡量取高級(jí)范式,尤其對(duì)記錄數(shù)較多的關(guān)系,低級(jí)范式將會(huì)造成存儲(chǔ)的大量重復(fù),是空間遭受嚴(yán)重浪費(fèi);另一方面從存取速度上考慮,應(yīng)該盡量做到一個(gè)模式涉及的屬性越多越好,相互運(yùn)算越少越好,這樣,又應(yīng)取低級(jí)范式。因此我們?cè)谠O(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)要嚴(yán)格地探討它的使用環(huán)境,充分了解用戶的需求,
21、清楚地掌握數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)。經(jīng)過(guò)綜合的評(píng)價(jià)和分析后設(shè)計(jì)出的數(shù)據(jù)庫(kù)應(yīng)滿足以下要求:(1) 數(shù)據(jù)庫(kù)信息要能充分體現(xiàn)出用戶使用系統(tǒng)的需求。 (2) 能夠支持用戶對(duì)數(shù)據(jù)進(jìn)行的所有處理。(3) 能夠容易被數(shù)據(jù)庫(kù)管理系統(tǒng)運(yùn)行維護(hù)。(4) 數(shù)據(jù)一致性、完整性好,無(wú)更新異常。本系統(tǒng)采用SQL SERVER2005做為后臺(tái)數(shù)據(jù)庫(kù),使用ADO.NET技術(shù)對(duì)數(shù)據(jù)進(jìn)行操作。 2.3.1 數(shù)據(jù)分析博客系統(tǒng)中,主要是管理用戶的文章、留言、系統(tǒng)信息等數(shù)據(jù)。數(shù)據(jù)的類型決定了程序?qū)?shù)據(jù)的處理方式也就是算法,因此,數(shù)據(jù)是系統(tǒng)實(shí)現(xiàn)分析的起點(diǎn)?,F(xiàn)通過(guò)數(shù)據(jù)流圖的方式分析系統(tǒng)中數(shù)據(jù)的流動(dòng)和處理。對(duì)系統(tǒng)的管理員,在登錄系統(tǒng)后,本系統(tǒng)接受管
22、理員的修改、添加、刪除請(qǐng)求,通過(guò)分析將這種請(qǐng)求轉(zhuǎn)化成相應(yīng)的SQL語(yǔ)句執(zhí)行對(duì)數(shù)據(jù)庫(kù)的相關(guān)的操作,并將執(zhí)行的相應(yīng)結(jié)果送回系統(tǒng)中。系統(tǒng)接收到數(shù)據(jù)庫(kù)返回的結(jié)果集,經(jīng)過(guò)一定的分析處理,將其轉(zhuǎn)化成ASP頁(yè)面,返回到客戶端顯示給用戶。2.3.2 SQL SERVER 2005SQL SERVER2005是可以在WEB上運(yùn)行的數(shù)據(jù)庫(kù)服務(wù)產(chǎn)品。它既可適用于桌面系統(tǒng)的單用戶數(shù)據(jù)庫(kù),也可適用于企業(yè)的網(wǎng)絡(luò)數(shù)據(jù)庫(kù),甚至適用于專業(yè)的WEB站點(diǎn)數(shù)據(jù)庫(kù),具有很強(qiáng)的可伸縮性。并且具有很高的可靠性、可用性和可管理性。從經(jīng)濟(jì)和開(kāi)發(fā)效率上適合中小型網(wǎng)站。它和ASP.NET同屬于微軟公司開(kāi)發(fā),在開(kāi)發(fā)接口有一致性,能更好的協(xié)調(diào)工作。同時(shí)
23、,SQL SERVER2005對(duì)數(shù)據(jù)的安全性也有一定的保障,它對(duì)用戶的訪問(wèn)進(jìn)行了兩個(gè)階段的檢查:一是認(rèn)證階段,二是許可確認(rèn)階段。數(shù)據(jù)庫(kù)使用ADO.NET來(lái)處理數(shù)據(jù)。2.3.3 ADO.NET ADO.NET是基于.NET框架結(jié)構(gòu)、面向分布式和以XML數(shù)據(jù)格式為核心的數(shù)據(jù)訪問(wèn)技術(shù),它提供了一組數(shù)據(jù)訪問(wèn)服務(wù)的類,可用于對(duì)Microsoft SQL Server、Oracle等數(shù)據(jù)源及通過(guò)OLEDB和XML公開(kāi)的數(shù)據(jù)遠(yuǎn)源的一致訪問(wèn)。ADO.NET統(tǒng)一了數(shù)據(jù)容器類編程接口,無(wú)論編寫何種應(yīng)用程序(Windows窗體、Web窗體、Web服務(wù))都可以通過(guò)同一組類來(lái)處理數(shù)據(jù)。為使用方便,ADO.NET還提供了
24、一組豐富的控件,利用可視化方式來(lái)開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用。ADO.NET體系結(jié)構(gòu)如下圖2-1所示.NET Framework 數(shù)據(jù)提供程序DatasetData TableCollection數(shù)據(jù)表DataAdapterConnection事務(wù)Command參數(shù)DataReaderDeleteCommandUpdateCommandInsertCommandSelectCommand數(shù)據(jù)庫(kù)DataRowCollectionConstraintCollectionDataColumnCollectionnDataRelationCollectionXML圖2-1 ADO.NET體系結(jié)構(gòu)ADO.NET體系結(jié)
25、構(gòu)的兩大核心控件是.NET Framework數(shù)據(jù)提供程序和Dataset。. NET Framework數(shù)據(jù)提供程序用于連接到數(shù)據(jù)庫(kù)、執(zhí)行命令和檢索結(jié)果。Dataset是一個(gè)功能豐富、比較復(fù)雜的數(shù)據(jù)集,它是支持ADO.NET的斷開(kāi)式、分布式數(shù)據(jù)方案的核心對(duì)象。Dataset專門用來(lái)處理從數(shù)據(jù)源獲得的數(shù)據(jù),無(wú)論數(shù)據(jù)來(lái)自什么數(shù)據(jù)源,它都使用相同的方式操作數(shù)據(jù)。2.4 ASP.NET配置A的配置文件都是XML格式的文件,XML格式文件易于書寫和定制,采用這種方法進(jìn)行配置方便靈活。另外,的配置都是可以隨時(shí)更改的,即應(yīng)用程序運(yùn)行期間,可以隨時(shí)增加和刪除配置文件中的項(xiàng)目,修改后可以立刻激活使用比當(dāng)配置發(fā)
26、生變化時(shí)需要服務(wù)重新啟動(dòng)配置才生效的方法有很大的優(yōu)勢(shì)。第三章 需求分析3.1 需求分析任何一個(gè)軟件項(xiàng)目的開(kāi)發(fā)都是從需求調(diào)查開(kāi)始,博客管理系統(tǒng)也不例外。系統(tǒng)管理員通過(guò)前臺(tái)頁(yè)面進(jìn)入后臺(tái)管理模塊后,可以對(duì)注冊(cè)的博客用戶進(jìn)行管理,包括對(duì)注冊(cè)用戶的添加、查找、修改和刪除等操作;而博客用戶通過(guò)前臺(tái)登陸后,可以對(duì)自己的博客空間進(jìn)行管理,包括發(fā)布自己的網(wǎng)絡(luò)日志、收藏個(gè)人圖片、與相關(guān)人員進(jìn)行交流和溝通以及刪除訪問(wèn)者的評(píng)論等。針對(duì)博客管理系統(tǒng)的一些需求,總結(jié)出如下信息:1.用戶分普通用戶、管理用戶和超級(jí)管理用戶。2.超級(jí)管理用戶員可以對(duì)博客管理員進(jìn)行管理和設(shè)置權(quán)限。3.博客管理員涉及對(duì)博客的類型管理、文章管理、圖
27、片管理、評(píng)論管理、留言管理和通信管理。4.普通用戶可一閱讀文章、發(fā)表回應(yīng)、留言和評(píng)論。5.一種文章類型有多篇文章。6.一種文章有多篇評(píng)論。3.2 可行性分析可行性分析(Feasibility Analysis)也稱為可行性研究,是在系統(tǒng)調(diào)查的基礎(chǔ)上,針對(duì)新系統(tǒng)的開(kāi)發(fā)是否具備必要性和可能性,對(duì)新系統(tǒng)的開(kāi)發(fā)從技術(shù)、經(jīng)濟(jì)、社會(huì)的方面進(jìn)行分析和研究,以避免投資失誤,保證新系統(tǒng)的開(kāi)發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。為了確定開(kāi)發(fā)具有可行性,對(duì)本系統(tǒng)主要進(jìn)行了以下四個(gè)方面的分析。(1) 經(jīng)濟(jì)可行性。經(jīng)濟(jì)可行性主要是對(duì)項(xiàng)目的經(jīng)濟(jì)效益進(jìn)行評(píng)價(jià)。本系統(tǒng)對(duì)系統(tǒng)開(kāi)發(fā)者來(lái)說(shuō)
28、并不需要太高的成本支出,只是對(duì)系統(tǒng)的管理者付出管理報(bào)酬即可,而且開(kāi)發(fā)周期不需要太長(zhǎng),節(jié)省了人力、物力、財(cái)力資源,所以本系統(tǒng)在經(jīng)濟(jì)上是可行的。(2) 技術(shù)上的可行性。技術(shù)上的可行性分析主要是分析技術(shù)條件能否順利完成開(kāi)發(fā)工作,硬、軟件能否滿足開(kāi)發(fā)者的需要等。在軟件方面,本系統(tǒng)采用的是ASP(Active Sever Pages)進(jìn)行開(kāi)發(fā),前臺(tái)網(wǎng)頁(yè)設(shè)計(jì)使用的是Dreamweaver MX,而數(shù)據(jù)庫(kù)系統(tǒng)采用的是Microsoft Access 2000。通過(guò)分析,在軟、硬件方面現(xiàn)有工具與環(huán)境完全可以實(shí)現(xiàn)系統(tǒng)的開(kāi)發(fā),因此具有技術(shù)上的可行性。(3) 時(shí)機(jī)可行性。時(shí)機(jī)可行性是分析系統(tǒng)開(kāi)發(fā)時(shí)機(jī)是否成熟。目前越
29、來(lái)越多的應(yīng)用程序都已經(jīng)是轉(zhuǎn)向基于Web的開(kāi)發(fā),并且Internet已經(jīng)廣泛使用,因此系統(tǒng)的設(shè)計(jì)具有時(shí)機(jī)可行性。(4) 管理上的可行性:主要是管理人員是否支持,現(xiàn)有的管理制度和方法是否科學(xué),規(guī)章制度是否齊全,原始數(shù)據(jù)是否正確等。系統(tǒng)的開(kāi)發(fā)主要就是為了方便校友信息的管理,補(bǔ)充現(xiàn)在傳統(tǒng)管理方式的不足,因此具備了管理上的可行性。綜上所述,本系統(tǒng)開(kāi)發(fā)目標(biāo)已明確,在技術(shù)和經(jīng)濟(jì)等方面具備可行性,并且投入少、見(jiàn)效快,因此系統(tǒng)的開(kāi)發(fā)是完全可行的。第四章 概要設(shè)計(jì)4.1 系統(tǒng)設(shè)計(jì)方案本系統(tǒng)是面向個(gè)人用戶和小型集體用戶開(kāi)發(fā)的系統(tǒng),完成用戶在Blog上進(jìn)行預(yù)定操作,實(shí)現(xiàn)用戶和來(lái)賓之間的雙向溝通。具體設(shè)計(jì)方案為:(1)
30、 系統(tǒng)服務(wù)器為IIS,數(shù)據(jù)庫(kù)為SQLSERVER2005,整個(gè)系統(tǒng)界面采用Microsoft visual Studio 2008開(kāi)發(fā)。(2) 用C#語(yǔ)言實(shí)現(xiàn)。(3) 服務(wù)器與數(shù)據(jù)庫(kù)的連接使用OLEDB編程接口的OleDbConnection對(duì)象進(jìn)行連接。(4) 系統(tǒng)分成兩部分,前臺(tái)為普通用戶操作界面,功能包括:閱讀文章,發(fā)表留言,發(fā)表評(píng)論,在線聊天。后臺(tái)為管理員操作界面,管理員通過(guò)登錄進(jìn)入管理界面,功能包括:分類管理,文章管理,添加文章,評(píng)論管理,鏈接管理,留言管理。4.2 系統(tǒng)功能模塊系統(tǒng)功能模塊包括兩大塊:管理界面功能模塊和普通用戶界面功能模塊。其具體功能如下所示:本系統(tǒng)由開(kāi)發(fā),更多內(nèi)容
31、請(qǐng)參閱公司官網(wǎng)。博客系統(tǒng)文章實(shí)體E-R圖如圖4-1所示。圖4-1 文章資源E-R圖管理員用戶功能模塊圖4-2如下:圖4-2 管理員功能模塊普通用戶功能模塊圖4-3如下:View_Users用戶Users文章ArticleArticle.username=Users.username圖4-3 普通用戶功能模塊4.3 數(shù)據(jù)庫(kù)需求分析用戶分為普通用戶和管理員用戶管理員涉及類型管理、文章管理、添加文章、評(píng)論管理、鏈接管理、留言管理。普通用戶可以閱讀文章、發(fā)表回應(yīng)、留言、評(píng)論和在線聊天。一種文章類型有多篇文章。一篇文章有多篇評(píng)論、回復(fù)。對(duì)上面系統(tǒng)功能分析,設(shè)計(jì)如下數(shù)據(jù)項(xiàng):管理員信息:用戶名、密碼。類型信
32、息:類型編號(hào)、類型名稱。鏈接:鏈接編號(hào)、鏈接名稱、鏈接地址。留言:留言編號(hào)、留言人呢稱、留言標(biāo)題、個(gè)人主頁(yè)、留言內(nèi)容、留言時(shí)間、留言回復(fù)。文章信息:文章序號(hào)、文章作者、文章標(biāo)題、摘要、文章內(nèi)容、文章發(fā)表日期、文章人氣、回復(fù)、文章類型編號(hào)、文章類型名稱、文章回復(fù)數(shù)。評(píng)論:評(píng)論序號(hào)、評(píng)論用戶呢稱、評(píng)論標(biāo)題、評(píng)論內(nèi)容、評(píng)論時(shí)間、評(píng)論的文章序號(hào)。4.4 系統(tǒng)操作流程分析傳統(tǒng)Blog系統(tǒng)這一環(huán)節(jié)所應(yīng)具有的功能,可以得到Blog系統(tǒng)應(yīng)具有以下功能:高級(jí)系統(tǒng)用戶(管理員)通過(guò)瀏覽器,可以實(shí)現(xiàn)文章的管理(對(duì)文章的各種信息進(jìn)行瀏覽、增加、刪除、修改等)、普通系統(tǒng)用戶對(duì)文章信息只能閱讀和留言。由此得到的系統(tǒng)的流程
33、圖如圖4-4所示個(gè)人博客系統(tǒng)文章信息管理個(gè)人信息管理通信信息管理評(píng)論信息管理添加刪除修改添加查看查看查看圖4-4 系統(tǒng)操作流程4.5 數(shù)據(jù)表設(shè)計(jì)數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)完畢后,現(xiàn)在可以將上面的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)轉(zhuǎn)化為某種數(shù)據(jù)庫(kù)系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)。博客系統(tǒng)中的數(shù)據(jù)管理形式采用數(shù)據(jù)庫(kù),根據(jù)系統(tǒng)需要與數(shù)據(jù)規(guī)范化分為博客文章類型表,博客友情鏈接表,留言信息列表,博客文章信息列表,評(píng)論信息列表,系統(tǒng)管理員列表,博客管理員列表,聯(lián)系人信息列表,圖片信息列表這9張表,在此只給出比較重要的數(shù)據(jù)表。表4-1 ST_news(文章信息列表)字段說(shuō)明類型長(zhǎng)度允許空ST_n_id文章唯一ID號(hào)In
34、t4否ST_n_author文章作者nvarchar50是ST_n_title文章標(biāo)題nvarchar200是ST_n_key文章摘要nvarchar200是ST_n_content文章內(nèi)容ntextr50是ST_n_date文章發(fā)表日期datetime8是ST_n_hit文章人氣bigint8是ST_n_re文章回復(fù)bigint8是ST_c_id文章類型編號(hào)bigint8是ST_c_name文章類型名稱nvarchar50是ST_c_iscmd文章回復(fù)數(shù)int4是表4-2 ST_replay(評(píng)論信息列表)字段說(shuō)明類型長(zhǎng)度允許空ST_r_id評(píng)論唯一ID號(hào)bigint8否ST_r_nick昵
35、稱nvarchar50是ST_r_title評(píng)論標(biāo)題nvarchar250是ST_r_content評(píng)論內(nèi)容nvarchar250是ST_r_date評(píng)論發(fā)表時(shí)間datetime8是ST_n_id評(píng)論文章編號(hào)int4是表4-3 ST_class(博客文章類型表)字段說(shuō)明類型長(zhǎng)度允許空ST_c_id文章唯一ID號(hào)bigint8否ST_c_name文章類型名稱Nvarchar50是BlogID博客唯一ID號(hào)int50是表4-4 ST_message(留言信息列表)字段說(shuō)明類型長(zhǎng)度允許空ST_id留言唯一ID號(hào)bigint8否ST_nickname網(wǎng)友昵稱nvarchar50是ST_title留言標(biāo)
36、題nvarchar50是ST_homepage個(gè)人主頁(yè)nvarchar50是ST_content留言內(nèi)容ntext16是ST_mdate留言時(shí)間datetime8是ST_hf留言回復(fù)ntext16是4.6 數(shù)據(jù)庫(kù)的完整性和安全性4.6.1 數(shù)據(jù)庫(kù)的完整性約束數(shù)據(jù)庫(kù)的完整性是指數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)用一定的機(jī)制來(lái)檢查數(shù)據(jù)庫(kù)中的數(shù)據(jù)是否滿足規(guī)定的條件完整性約束條件,數(shù)據(jù)的約束條件是語(yǔ)義的體現(xiàn),將作為模式的一部分存入數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)的完整性約束主要包括以下三方面要求:(1) 實(shí)體完整性實(shí)體完整性是指若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。對(duì)于每個(gè)表來(lái)說(shuō),主鍵都不可
37、以為空。在用戶提交信息時(shí),系統(tǒng)會(huì)對(duì)用戶所填寫的信息進(jìn)行驗(yàn)證,對(duì)于其中的關(guān)鍵信息沒(méi)有填寫或者數(shù)據(jù)非法時(shí),系統(tǒng)會(huì)提示用戶更改后再提交。這樣保證了系統(tǒng)實(shí)體完整性。(2) 參照完整性由于表和表之間會(huì)存在某些聯(lián)系,當(dāng)關(guān)系R和關(guān)系S之間是一對(duì)多關(guān)系時(shí)(R的主鍵是A,S的主鍵是b,c是s中的外碼),在插入數(shù)據(jù)時(shí)就要保證外碼c的值或者為空或者等于R中某個(gè)元組的主碼值。在對(duì)被參照表進(jìn)行刪除操作時(shí)應(yīng)同時(shí)進(jìn)行及聯(lián)刪除。(3) 用戶定義完整性任何關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)都應(yīng)該支持實(shí)體完整性和參照完整性。除此之外,不同的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件,用戶定義的完整性就是針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的
38、約束條件。它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。例如某個(gè)屬性必須取唯一值、某個(gè)屬性的取值范圍等。4.6.2 數(shù)據(jù)庫(kù)的安全性數(shù)據(jù)庫(kù)的安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法的使用所造成的數(shù)據(jù)泄漏、更改或破壞。在數(shù)據(jù)庫(kù)系統(tǒng)中,大量的數(shù)據(jù)集中存放,同時(shí)又為許多用戶直接共享,是寶貴的信息資源,因此系統(tǒng)的安全保護(hù)措施就顯得更為重要。鍵全的數(shù)據(jù)庫(kù)安全機(jī)制可以防止數(shù)據(jù)庫(kù)被惡意的破壞和非法的存取。本系統(tǒng)的安全設(shè)計(jì)包括服務(wù)器和數(shù)據(jù)庫(kù)兩方面設(shè)計(jì)。當(dāng)用戶使用系統(tǒng)時(shí),系統(tǒng)首先會(huì)檢查用戶是否登錄,如果用戶還沒(méi)有登錄,系統(tǒng)將會(huì)彈出警告窗口提醒用戶,并將相應(yīng)的頁(yè)面跳轉(zhuǎn)至用戶登錄。在用戶提交登錄信息后,系統(tǒng)會(huì)對(duì)用戶的身份
39、進(jìn)行核對(duì),如果在數(shù)據(jù)庫(kù)中查找到了相關(guān)記錄,打開(kāi)用戶頁(yè)面,表明用戶登錄成功。對(duì)于數(shù)據(jù)庫(kù)的安全,主要是通過(guò)對(duì)授權(quán)用戶的身份驗(yàn)證實(shí)現(xiàn)的。在的系統(tǒng)管理頁(yè)面,提示用戶使用管理員帳號(hào)在此登錄,沒(méi)有管理權(quán)限的系統(tǒng)注冊(cè)用戶無(wú)法登錄到數(shù)據(jù)庫(kù)管理的后臺(tái)。系統(tǒng)確認(rèn)了管理員身份之后統(tǒng)會(huì)打開(kāi)管理頁(yè)面,系統(tǒng)管理者可在此對(duì)整個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)進(jìn)行管理和維護(hù)。第五章 詳細(xì)設(shè)計(jì)5.1 后臺(tái)功能模塊詳細(xì)設(shè)計(jì) 通過(guò)此功能用戶可以對(duì)主頁(yè)中的許多功能和數(shù)據(jù)進(jìn)行操作控制。5.1.1 用戶注冊(cè)模塊設(shè)計(jì)頁(yè)面Register.asp主要完成引導(dǎo)用戶進(jìn)行注冊(cè),首先會(huì)提供注冊(cè)表讓用戶輸入用戶名和密碼等,讓用戶輸入注冊(cè)信息,輸入完成后,當(dāng)用戶單擊注冊(cè)按
40、鈕的時(shí)候,要對(duì)用戶輸入的注冊(cè)信息簡(jiǎn)單認(rèn)證,看用戶信息是否驗(yàn)證,如果驗(yàn)證進(jìn)行數(shù)據(jù)庫(kù)驗(yàn)證,查看用戶之前是否已經(jīng)注冊(cè)過(guò),如果沒(méi)有注冊(cè)則插入一條新記錄到數(shù)據(jù)庫(kù),完成注冊(cè)。本系統(tǒng)由開(kāi)發(fā),更多內(nèi)容請(qǐng)參閱公司官網(wǎng)。圖5-1 博客注冊(cè)資料實(shí)現(xiàn)此功能的關(guān)鍵代碼為:protected void btnOK_Click(object sender, EventArgs e)SqlData da = new SqlData();SqlDataReader read = da.ExceRead(select * from tb_Admin where UserName= + this.txtName.Text + );
41、read.Read();if (read.HasRows)if (this.txtName.Text = readUserName.ToString()Response.Write(alert(對(duì)不起,該用戶已經(jīng)注冊(cè)!);location=Register.aspx);return; read.Close();string P_str_Com = insert into tb_Admin(UserName,PassWord,Question,Answer,ReallyName,Birthday,Address+ ,PostCode,Email,HomePhone,MobilePhone,QQ,
42、ICQ,RegTime,Sex,SuperAdmin,IP) values( + this.txtName.Text + + , + this.txtPwd.Text + , + this.txtQues.Text + , + this.txtAns.Text + , + this.txtRealName.Text + + , + this.txtBirthday.Text + , + this.txtAddress.Text + , + this.txtPostCode.Text + , + this.txtEmail.Text + + , + this.txtHphone.Text + ,
43、 + this.txtMphone.Text + , + this.txtQQ.Text + , + this.txtICQ.Text + , + DateTime.Now.ToString() + , + this.DropDownList1.SelectedValue + ,+this.DropDownList2.SelectedValue+,+Request.UserHostAddress+);bool add = da.ExceSQL(P_str_Com);if (add = true) Response.Write(alert(注冊(cè)成功!);location=AdminManage.
44、aspx);elseResponse.Write(alert(注冊(cè)失敗!);location=javascript:history.go(-1); 在博客注冊(cè)頁(yè)面中,還用到了一個(gè)小功能,就是在用戶填寫用戶名時(shí),通過(guò)單擊“檢測(cè)用戶”按鈕,觸發(fā)其Click事件來(lái)檢測(cè)填寫的用戶名是否已經(jīng)存在。主要代碼如下:protected void Button1_Click(object sender, EventArgs e)SqlData da = new SqlData();SqlDataReader read = da.ExceRead(select * from tb_Admin where User
45、Name=+this.txtName.Text+);read.Read();if (read.HasRows)if (this.txtName.Text = readUserName.ToString()Response.Write(alert(對(duì)不起,該用戶已經(jīng)注冊(cè)!);location=Register.aspx);elseResponse.Write(alert(恭喜您,該用戶可以注冊(cè)!););read.Close();5.1.2 博客管理員首頁(yè)設(shè)計(jì) 在博客首頁(yè)中單擊“管理員”超鏈接,彈出管理員登錄對(duì)話框,輸入正確的用戶名和密碼后,單擊“登錄”按鈕,進(jìn)入博客管理員首頁(yè),如圖5-2所示。在
46、頁(yè)面左側(cè)顯示的是樹(shù)形功能導(dǎo)航菜單,其有7項(xiàng)管理功能,分別為類型管理,文章管理,留言管理,評(píng)論管理,鏈接管理,通信管理和圖片管理。單擊相應(yīng)的功能超鏈接,將在頁(yè)面右側(cè)顯示相應(yīng)的連接信息,例如單擊“類型管理“超鏈接,將在頁(yè)面右側(cè)顯示所有的文章類型,管理員可進(jìn)行添加修改和刪除等操作。圖5-2 文章信息管理圖實(shí)現(xiàn)代碼在此內(nèi)容頁(yè)中的前臺(tái)代碼中編寫如下代碼: 該頁(yè)主要應(yīng)用了TreeView控件,實(shí)現(xiàn)對(duì)博客后臺(tái)的導(dǎo)航管理,如導(dǎo)向文章類型管理頁(yè)面。在頁(yè)面中應(yīng)用的TreeView控件代碼如下: 5.1.3 博客文章信息管理頁(yè)面 在博客的后臺(tái)管理中,文章管理占有相當(dāng)重要的地位。單擊Blog文件夾下ST_BlogIn
47、dex.aspx頁(yè)面中的“博客管理員”節(jié)點(diǎn)下的“文章管理”,就會(huì)顯示出博客文章管理的相關(guān)信息,包括文章編號(hào),文章標(biāo)題,人氣指數(shù)等。這部分內(nèi)容的實(shí)現(xiàn)是由該文件夾下的AvticleManage.aspx頁(yè)面來(lái)實(shí)現(xiàn)的,運(yùn)行效果如圖5-3所示。此頁(yè)面中用到了一個(gè)GridView控件,主要用來(lái)向用戶展示已有文章信息,同時(shí)提供修改,刪除,添加和查詢基本操作。圖5-3 博客管理博客文章信息的查詢關(guān)鍵代碼如下:protected void btnSearch_Click(object sender, EventArgs e) SqlData da = new SqlData(); string search
48、= this.ddlSearch.SelectedValue; switch (search) case 文章ID: da.BindData(this.GridView1, Select * From ST_news Where ST_n_id Like % + this.txtKey.Text + % and BlogID= + ID + ); break; case 文章主題: da.BindData(this.GridView1, Select * From ST_news Where ST_n_title Like % + this.txtKey.Text + % and BlogID
49、= + ID + ); break; default: Response.Write(alert(查詢失?。?;location=javascript:history.go(-1); break; 博客文章信息的修改關(guān)鍵代碼如下:protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) try string str; string str2 = Page.Requestid.ToString(); /此處用來(lái)實(shí)現(xiàn)將數(shù)據(jù)綁定到前臺(tái) SqlConnection mycon = new SqlConnection(Co
50、nfigurationManager.AppSettingsconStr); mycon.Open(); SqlDataAdapter myada = new SqlDataAdapter(select * from ST_news where ST_n_id= + str2 + , mycon); DataSet ds = new DataSet(); myada.Fill(ds, ST_news); /創(chuàng)建DataRowView對(duì)象的一個(gè)實(shí)例 DataRowView rowview = ds.TablesST_news.DefaultView0; /將文章主題讀取到labSubject文本
51、框中 this.labSubject.Text = rowviewST_n_title.ToString(); /將文章內(nèi)容讀取到txtContent文本框中 this.txtContent.Text = rowviewST_n_content.ToString(); mycon.Close(); catch (Exception ex) Response.Write(ex.Message); 博客文章信息的添加關(guān)鍵代碼如下:protected void Page_Load(object sender, EventArgs e) if (SessionUserName = null) Resp
52、onse.Redirect(/BlogIndex.aspx); SqlConnection mycon = new SqlConnection(ConfigurationManager.AppSettingsconStr); mycon.Open(); DataSet mydataset = new DataSet(); SqlDataAdapter mydataadapter = new SqlDataAdapter(select * from tb_Blog where UserName= + SessionUserName + , mycon); mydataadapter.Fill(m
53、ydataset, tb_Blog); DataRowView rowview = mydataset.Tablestb_Blog.DefaultView0; ID = rowviewBlogID.ToString(); string sqlstr = select * from ST_Class where BlogID=+ID+; SqlCommand mycom = new SqlCommand(sqlstr, mycon); SqlDataReader dr = mycom.ExecuteReader(); /判斷是否有數(shù)據(jù) while (dr.Read() DropDownList1
54、.Items.Add(new ListItem(drST_c_name.ToString(),drST_c_id.ToString(); 5.2 前臺(tái)功能模塊詳細(xì)設(shè)計(jì)5.2.1 前臺(tái)主界面前臺(tái)主界面圖如下圖5-4 前臺(tái)主界面圖 主要實(shí)現(xiàn)代碼如下: protected void Page_Load(object sender, EventArgs e) / 在此處放置用戶代碼以初始化頁(yè)面string ST_dns = ConfigurationSettings.AppSettingsconStr;/最新推薦文章string ST_cmd_sql = select top 10 * from ST
55、_news where ST_n_iscmd=1 order by ST_n_date desc;ST_myConn = new SqlConnection(ST_dns); SqlDataAdapter ST_classCmd = new SqlDataAdapter(select ST_c_id, ST_c_name from ST_class , ST_myConn);SqlDataAdapter ST_cmdCmd = new SqlDataAdapter(ST_cmd_sql,ST_myConn);DataSet ST_classds = new DataSet();ST_class
56、Cmd.Fill(ST_classds,類別列表);DataSet ST_cmdds = new DataSet();ST_cmdCmd.Fill(ST_cmdds,推薦文章);ClassList.DataSource = new DataView(ST_classds.Tables0);ClassList.DataBind();CmdList.DataSource = new DataView(ST_cmdds.Tables0);CmdList.DataBind(); /調(diào)用自定義NewsBlogList_Bind方法NewsBlogList_Bind();if (Request.Cooki
57、escolors!=null)string ST_test = Request.Cookiescolors.Value;String ST_colorList = ST_test.Split(new char , );ST_bgcolor = ST_colorList0;ST_tcolor = ST_colorList1;elseST_bgcolor = #FFDE94;ST_tcolor = #efe3ce;Page.DataBind();public void NewsBlogList_Bind()string ST_sql;if (Request.QueryStringc_id=null
58、)ST_sql = select * from ST_news order by ST_n_date desc;elseif (IsSafe(Request.QueryStringc_id,2)=true)ST_sql = select * from ST_news where ST_c_id=+ Request.QueryStringc_id + order by ST_n_date desc; elseST_sql=;Response.Write(非法參數(shù));Response.End();SqlDataAdapter ST_myCmd = new SqlDataAdapter(ST_sql
59、,ST_myConn);DataSet ST_ds = new DataSet();ST_myCmd.Fill(ST_ds,文章列表);NewsList.DataSource = new DataView(ST_ds.Tables0);NewsList.DataBind();public bool IsSafe (string str, int prama)if (prama=1)if (Regex.IsMatch(str,0-9)return true;elsereturn false;elseif (str.IndexOf(and)0 | str.IndexOf(or)0 | str.In
60、dexOf()0)return false;elsereturn true;#region Web Form Designer generated codeoverride protected void OnInit(EventArgs e)InitializeComponent();base.OnInit(e);#endregion protected void NewsList_PageIndexChanging(object sender, GridViewPageEventArgs e) NewsList.PageIndex = e.NewPageIndex; NewsBlogList
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)營(yíng)銷管理咨詢合同范例
- 辦公器材購(gòu)銷合同范例
- 光伏正規(guī)合同范例
- 光伏設(shè)計(jì)合同范例
- 倉(cāng)庫(kù)院子出租合同范例
- 代銷協(xié)議合同范例
- 臨時(shí)停車管理合同范例
- 農(nóng)村垃圾池合同范例
- 義烏廠房裝修設(shè)計(jì)合同范例
- 別墅景觀工程合同范例
- 2025年陜西延長(zhǎng)石油集團(tuán)有限責(zé)任公司招聘筆試參考題庫(kù)含答案解析
- 2024年湖南省中考英語(yǔ)試題卷(含答案)
- 新版五金公司績(jī)效考核表
- 曼昆《經(jīng)濟(jì)學(xué)原理》(微觀經(jīng)濟(jì)學(xué)分冊(cè))第8版 全部答案
- 第八章:微生物的生態(tài)
- 第5講:工作研究的分析技術(shù)
- ISO9001ISO14001ISO45001內(nèi)審檢查表
- 【告知牌】某公司全套重大危險(xiǎn)源告知牌(7頁(yè))
- 現(xiàn)代密碼學(xué)公鑰密碼體制課件
- 【課件】第十四單元第二十七節(jié)肖邦課件-2021-2022學(xué)年高中音樂(lè)人音版(2019)必修音樂(lè)鑒賞
- 贏時(shí)勝財(cái)務(wù)估值系統(tǒng)日常操作指引
評(píng)論
0/150
提交評(píng)論