基于ASPNET的博客系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
基于ASPNET的博客系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
基于ASPNET的博客系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
基于ASPNET的博客系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
基于ASPNET的博客系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、/rabbit_liu/blog/item/bfb111f70b8feece0.html基于ASP.NET的博客系統(tǒng)的設(shè)計與實現(xiàn)摘要基于Microsoft.Net環(huán)境的ASP.NET技術(shù),為開發(fā)功能強(qiáng)大的動態(tài)網(wǎng)站提供了一種簡單、高效的途徑。該博客系統(tǒng)以ASP.NET為開發(fā)技術(shù),使用C為開發(fā)語言,實現(xiàn)了博客網(wǎng)站的動態(tài)管理,使得對博客信息的管理更加及時、高效,提高了工作效率。同時對系統(tǒng)的背景需求、系統(tǒng)的功能特點(diǎn)和設(shè)計方案進(jìn)行了介紹。該文還以隨筆管理為例,對ASP.NET環(huán)境下的MVC開發(fā)模式進(jìn)行了簡單的介紹。.關(guān)鍵字ASP.NET;ADO.NET;博客;系統(tǒng);數(shù)

2、據(jù)庫引言博客,數(shù)字生活新時尚,通過文字、圖片、聲音、視頻、無線等,盡情展示自我、分享感受、參與交流,美好你我生活。Show you, share me,人人都可以博客,人人都需要博客。1 項目背景“博客”一詞是從英文單詞Blog翻譯而來。Blog是Weblog的簡稱,而Weblog則是由Web和Log兩個英文單詞組合而成。Weblog就是在網(wǎng)絡(luò)上發(fā)布和閱讀的流水記錄,通常稱為“網(wǎng)絡(luò)日志”,簡稱為“網(wǎng)志”。它是繼Email、BBS、IM之后出現(xiàn)的第四種全新的網(wǎng)絡(luò)交流方式。它絕不僅僅是一種單向的發(fā)布系統(tǒng),而且有著極其出色的交流功能。另外Blog也提供了非常方便實用的個性化功能。簡言之,Blog就是

3、以網(wǎng)絡(luò)作為載體,簡易迅速便捷地發(fā)布自己的心得,及時有效輕松地與他人進(jìn)行交流,再集豐富多彩的個性化展示于一體的綜合性平臺。2 需求分析2.1需求調(diào)研任何一個系統(tǒng)的開發(fā),必然有其需求者,博客系統(tǒng)也不例外,本系統(tǒng)通過對互聯(lián)網(wǎng)中的各個博客系統(tǒng)的分析,得出從以下幾個方面進(jìn)行調(diào)研:(1)、收益需求:描述系統(tǒng)的商業(yè)需求和系統(tǒng)將帶來的收益。(2)、日常功能:親身體驗一個博客在系統(tǒng)中如何交互,然后記錄下來。(3)、通過論壇來了解各博客用戶的需求:記錄下各論壇中各博客用戶對博客的要求記錄。(4)、制作郵件調(diào)查表:通過調(diào)查表的形式得出一些具體的書面信息,了解細(xì)節(jié)。2.2創(chuàng)建用例圖博客系統(tǒng)參與者:如圖1用戶博客管理員

4、博客訪問者系統(tǒng)管理員圖1 博客系統(tǒng)參與者博客系統(tǒng)用例:如圖2用戶博客訪問者系統(tǒng)管理員博客管理員管理博客賬號刪除博客內(nèi)容閱讀博客內(nèi)容用戶登錄修改賬號信息瀏覽博客目錄發(fā)表評論管理博客內(nèi)容圖2 博客系統(tǒng)用例圖2.3、詳細(xì)描述用例(舉例)用戶登錄用例如表1所示表1 用戶登錄用例表用例名稱用戶登錄用例IDUC_11參與者用戶、管理員描述用戶登錄系統(tǒng)過程風(fēng)險低優(yōu)先級高難度低啟動主動進(jìn)入用戶登錄畫面或會話超時轉(zhuǎn)入用戶登錄畫面前置條件用戶需在登錄狀態(tài)后置條件將用戶信息放入會話中將用戶相關(guān)的博客信息放入會話中顯示博客閱讀主畫面主事件流用戶系統(tǒng)1、進(jìn)入或轉(zhuǎn)入用戶登錄畫面2、用戶輸入用戶名和密碼3、系統(tǒng)檢查用戶和密

5、碼是否合法4、系統(tǒng)檢查用戶是否存在,密碼是否正確5、讀取用戶的基本信息、博客的基本信息放入會話中6、轉(zhuǎn)到管理博客的主畫面異常流異常流系統(tǒng)中不存在該用戶或用戶名錯誤系統(tǒng)轉(zhuǎn)入登錄畫面異常用戶不存在或者密碼錯誤用戶登錄用例圖如圖3所示:填寫用戶名、密碼驗證用戶名、密碼進(jìn)入登錄前的界面儲存博客賬號信息提示用戶登錄失敗圖3 用戶登錄用例圖3系統(tǒng)分析3.1系統(tǒng)中的對象面向?qū)ο蟮拈_發(fā)的基石是對象,那么分析一個系統(tǒng)的開始就是從確定對象開始。那么這個系統(tǒng)重要的實體對象有:博客賬戶信息、用戶、標(biāo)題、用戶名、密碼、分類、文章、鏈接、評論、隨筆、圖片。而必須的對象有:文章,圖片,隨筆,鏈接,博客賬號,分類,評論。3.

6、2 開發(fā)技術(shù)分析本系統(tǒng)采用ASP.NET開發(fā)技術(shù)進(jìn)行開發(fā)。ASP.NET不僅僅是ASP的一個新版本,更是Web應(yīng)用程序編程方面的一個全新的概念和方法。ASP.NET中的新功能并不是對ASP的改進(jìn),設(shè)計它的初衷是為用戶入境提供最佳的應(yīng)用程序架構(gòu)。它相比于ASP有著以下幾個方面的優(yōu)點(diǎn):(1) 多語言ASP曾在腳本引擎方面受到了限制,特別是VBScript和Jscript。而ASP.NET則支持多種語言,默認(rèn)情況下為Visual Basic.NET、C#和Jscript.NET,另外還支持一些第三方語言。(2) 服務(wù)器處理ASP在服務(wù)器處理上不管頁面的內(nèi)容是純HTML還是ASP生成的HTML,它都是

7、按照頁面順序顯示的。因此邏輯代碼依賴于它在頁面中的位置,并且無法將HTML控件作為目標(biāo),除非將它們作為流的一部分進(jìn)行顯示。而ASP.NET就解決了這個問題,方法是為控件引入一個聲明的基于服務(wù)器的模型,因為控件在服務(wù)器上有,可以在服務(wù)器上編程,也可以是客戶端驅(qū)動的事件。(3) Web Form控件將現(xiàn)有的HTML控件轉(zhuǎn)換為服務(wù)器端的控件是比較容易的,但是也存在一些不方便,例如比較難于區(qū)分HTML控件和服務(wù)器端的控件。于是Microsoft公司就創(chuàng)建了一組專門的服務(wù)器控件,它們都用asp:前綴標(biāo)識。(4) 代碼與內(nèi)容分離一個網(wǎng)站的設(shè)計與開發(fā)往往由不同的人來實現(xiàn)的,而ASP中就是存在著這樣一個問題,

8、代碼(ASP腳本)和內(nèi)容(HTML)混合在一起。這樣就使得同時進(jìn)行設(shè)計和開發(fā)變得很困難。而ASP.NET則采用了代碼內(nèi)聯(lián)和后臺編碼兩種方法實現(xiàn)了代碼與內(nèi)容的分離。3.2 健壯性分析(舉例)下面以對博客系統(tǒng)的用戶登錄用例為例進(jìn)行健壯性分析:3.3.1事件流分析事件流分析主要是針對系統(tǒng)中的用例描述中關(guān)于事件流的部分進(jìn)行分析,此外還必須綜合考慮基本路徑和擴(kuò)展路徑兩方面。3.3.2邊界對象分析邊界對象:通常是用來完成參與者(用戶、外部系統(tǒng))與系統(tǒng)之間交互的對象。在用戶登錄這個用例中,由于不存在外部系統(tǒng),而且參與者也只有一個,就是“用戶”,因此它的邊界對象有:(1)用戶進(jìn)入登錄畫面。(2)轉(zhuǎn)到管理博客的

9、主畫面。3.3.3實體對象分析實體對象:通常來自域模型,也就是現(xiàn)實世界,用來描述具體的實體,通常映射到數(shù)據(jù)庫表格與文件。這個用例的實體對象包括用戶和博客賬號信息。3.3.4控制對象分析控制對象:主要用來體現(xiàn)應(yīng)用程序的執(zhí)行邏輯,將其抽象出來,可以使得程序不影響用戶畫面和數(shù)據(jù)庫中的表。這個用例的控制對象有:檢測博客賬號的合法性。3.4交互設(shè)計3.4.1引入實體對象根據(jù)健壯性分析,可以把實體對象給羅列出來。這些對象通常也是每個類的一個實例。由于是用來描述運(yùn)行時狀態(tài)的情況,因此是對象,而非類。3.4.2引入邊界對象和參與者將實體對象引入之后,再就是將邊界對象找出來,在交互設(shè)計中引入?yún)⑴c者和邊界對象。3

10、.4.3引入控制對象將參與者、邊界對象均引入之后,再就要結(jié)合健壯圖中的控制對象,以及用例描述中的事件流來確定對象之間的消息傳遞。3.4.4添加類的屬性與方法在交互設(shè)計中,將會發(fā)現(xiàn)類應(yīng)該具有的方法,也會在設(shè)計中找到一些新的屬性,而這些東西將近一步地完善交互設(shè)計。結(jié)合健壯分析、交互設(shè)計時引入設(shè)計類,并添加相應(yīng)的屬性與方法。3.4.5引入基礎(chǔ)類在著手開發(fā)之前,有一件很重要的事,那就是引入基礎(chǔ)類。不管用什么樣的開發(fā)工具進(jìn)行代碼編寫,都將以各種庫函數(shù)、框架作為開發(fā)基礎(chǔ)。因此首先根據(jù)應(yīng)用的需要選擇相應(yīng)的框架,然后再根據(jù)具體的局部需要選擇相應(yīng)的類庫。這個系統(tǒng)中要進(jìn)行數(shù)據(jù)庫操作,可使用.NET Framewo

11、rk的ADO.NET進(jìn)行數(shù)據(jù)庫操作。在進(jìn)行文本編輯時使用文本編輯,引入第三方控件,使用FreeTextBox編輯器。在進(jìn)行分頁時,同樣引入第三方控件,使用AspNetPager分頁控件。由于這些第三方控件均是開放源碼的,所以我們自己可以在開發(fā)的過程中對控件進(jìn)行自己的改動,既有效又方便。需要將這些類庫、控件引入到工程中。4.代碼實現(xiàn)4.1、編碼之前的工作4.1.1在visual 中創(chuàng)建解決方案在Visual 中,系統(tǒng)的開發(fā)主要是以解決方案的形式解決。所以我們在開發(fā)這個博客系統(tǒng)前,首先要先創(chuàng)建一個解決方案,命名為MyBlog。4.1.2文件夾的規(guī)劃在一個We

12、b項目中,文件夾也需要進(jìn)行規(guī)劃,通常包括ASP.NET頁面、圖片、樣式文件、Flash動畫等元素,需要把它們放置到不同的文件夾,才能很好地管理文件。那么該系統(tǒng)的文件夾規(guī)劃方式為:(1)Core文件夾下存放工程的類文件。(2)根目錄下只存放Default.aspx文件,根目錄下的Images下存放與Default.aspx文件相關(guān)的圖片。(3)ASP.NET頁面需要按模塊旋轉(zhuǎn)到各文件夾,相關(guān)的圖片放置到模塊文件夾下面的Images文件夾下。(4)樣式文件放置到根目錄下的Images文件夾下。4.2MVC模式4.2.1什么是MVC模式?MVC由Trygve Reenskaug提出,首先被應(yīng)用在Sm

13、allTalk-80環(huán)境中,是許多交互和畫面系統(tǒng)的構(gòu)成基礎(chǔ)。MVC結(jié)構(gòu)是為那些需要為同樣的數(shù)據(jù)提供多個視圖的應(yīng)用程序而設(shè)計的,它很好地實現(xiàn)了數(shù)據(jù)層與表示層的分離。MVC作為一種開發(fā)模型,通常用于分布式應(yīng)用系統(tǒng)的設(shè)計和分析,以及用于確定系統(tǒng)各部分間的組織關(guān)系。對于畫面設(shè)計可變性的需求,MVC(Model-View-Controller)把交互系統(tǒng)的組成分解成模型、視圖、控制器3種部件。(1)視圖部件把表示模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息以特定形式展示給用戶。它從模型獲得顯示信息,對于相同的信息可以有多個不同的顯示形式或視圖。(2)控制器部件是處理用戶與軟件的交互操作的,其職責(zé)是控制提供模型中任何變

14、化的傳播,確保用戶畫面與模型間的對應(yīng)聯(lián)系;它接受用戶的輸入,將輸入反饋給模型,進(jìn)而實現(xiàn)對模型的計算控制,是使模型和視圖協(xié)調(diào)工作的部件。(3)模型部件保存由視圖顯示、由控制器控制的數(shù)據(jù);它封裝了問題的核心數(shù)據(jù)、邏輯和功能的計算關(guān)系,它獨(dú)立于具體的畫面表達(dá)和I/O操作。模型、視圖與控制器的分離,使得一個模型可以具有多個顯示視圖。如果用戶通過某個視圖的控制器改變了模型的數(shù)據(jù),所有其他依賴于這些數(shù)據(jù)的視圖都應(yīng)反映了這些變化。因此,無論何時發(fā)生了何種數(shù)據(jù)變化,控制器都會將變化通知所有的視圖,導(dǎo)致顯示的更新。這實際上是一種模型的變化傳播機(jī)制。4.2.2ASP.NET模式下如何實現(xiàn)MVC?ASP.NET提供

15、了一個很好的實現(xiàn)這種經(jīng)典設(shè)計模式的類似環(huán)境。開發(fā)者通過在ASPX頁面中開發(fā)用戶接口來實現(xiàn)視圖;控制器的功能在邏輯功能代碼(.cs)中實現(xiàn);模型通常對應(yīng)應(yīng)用系統(tǒng)的業(yè)務(wù)部分。在ASP.NET中實現(xiàn)這種設(shè)計而提供的一個多層系統(tǒng),對較經(jīng)典的ASP結(jié)構(gòu)實現(xiàn)的系統(tǒng)來說有明顯的優(yōu)點(diǎn)。將用戶顯示(視圖)從動作(控制器)中分離出來,提高了代碼的重用性。將數(shù)據(jù)(模型)從對其操作的動作(控制器)分離出來,可以讓用戶設(shè)計一個與后臺存儲數(shù)據(jù)無關(guān)的系統(tǒng)。就MVC結(jié)構(gòu)的本質(zhì)而言,它是一種解決耦合系統(tǒng)問題的方法。4.3用戶組件和樣式的設(shè)計博客系統(tǒng)中存在很多相同或相似的元素,這些元素可能是頁面的標(biāo)題,可能是頁面的版權(quán)聲明,也可

16、能是文章的列表或是登錄信息框。需要尋找一種方式在整個系統(tǒng)中共享,而不需在變化時修改所有的頁面。所以就采用了樣式文件進(jìn)行管理以及用戶自定義組件。4.3.1 使用統(tǒng)一樣式表在樣式文件中主要對以下五個內(nèi)容進(jìn)行定義:(1)博客標(biāo)題:它是博客隨筆、文章標(biāo)題、圖片名稱的樣式定義。(2)博客內(nèi)容:它是博客內(nèi)容、文章內(nèi)容的樣式定義。(3)博客版權(quán)信息:它是博客系統(tǒng)的頁面下方顯示博客系統(tǒng)的版權(quán)信息的樣式定義,在Footer用戶控件中使用。(4)導(dǎo)航欄:它是博客系統(tǒng)上方導(dǎo)航欄的樣式定義,在Header用戶控件中使用。(5)輸入框:它是博客系統(tǒng)表單元素的樣式定義。4.3.2 設(shè)計用戶控件ASP.NET為開發(fā)人員提供

17、了用戶控件這一新技術(shù)來實現(xiàn)Web元素的共享,開發(fā)人員可以通過Visual Studio.Net進(jìn)行Web元素的外面的開發(fā),同時可以通過Web元素后臺代碼的方式進(jìn)行表現(xiàn)層的開發(fā)。在這個博客系統(tǒng)中,使用了Header、Footer等用戶控件。4.4、數(shù)據(jù)庫設(shè)計博客系統(tǒng)中的數(shù)據(jù)管理形式采用數(shù)據(jù)庫,根據(jù)系統(tǒng)需要與數(shù)據(jù)規(guī)范化分為博客賬戶信息表(blog),博客文章信息表(Article),博客隨筆信息表(Essay),博客類別表(Category),博客評論表(FeedBack),博客鏈接表(Href),博客圖片表(Picture)這七個表,表結(jié)構(gòu)分別如下:表2博客賬戶信息表(blog)列名數(shù)據(jù)類型長度

18、允許空備注BlogIDInt4沒有實際意義,作為該表主鍵存在SubjectNvarchar50Null博客的名稱UsernameNvarchar50Null博客的用戶名PasswordNvarchar50Null博客的密碼DescriptionNvarchar100Null博客的描述EmailNvarchar200Null博客的電子郵箱EntrynumInt4Null博客的每頁文章顯示數(shù)量NameNvarchar50Null角色名稱RoleInt4Null角色EssaycountInt4Null隨筆數(shù)ArticlecountInt4Null文章數(shù)FeedbackcountInt4Null評論數(shù)

19、表3博客文章信息表(Article)列名數(shù)據(jù)類型長度允許空備注ArticleIDInt4文章表的主鍵SubjectNvarchar50Null文章標(biāo)題ContentNtext16Null文章內(nèi)容CategoryIDInt4Null文章所屬分類號BlogIDInt4Null文章所屬博客號TimeNvarchar50Null發(fā)表時間ViewInt4Null查看次數(shù)FeedbackInt4Null評論數(shù)表4博客隨筆信息表(Essay)列名數(shù)據(jù)類型長度允許空備注EssayIDInt4隨筆表的主鍵SubjectNvarchar50Null隨筆標(biāo)題ContentNtext16Null隨筆內(nèi)容Categor

20、yIDInt4Null隨筆所屬分類號BlogIDInt4Null隨筆所屬博客號TimeNvarchar50Null發(fā)表時間ViewInt4Null查看次數(shù)FeedbackInt4Null評論數(shù). 表5博客類別表(Category)列名數(shù)據(jù)類型長度允許空 備注CategoryIDInt4主鍵NameNvarchar50Null類別名稱BlogIDInt4Null類別所屬的博客號TypeNvarchar10Null類別所屬博客類型DescriptionNvarchar500Null該類別的描述表6博客評論表(FeedBack)列名數(shù)據(jù)類型長度允許空備注FeedBackIDInt4評論號,主鍵Sub

21、jectNvarchar50Null評論標(biāo)題ContentNtext16Null評論內(nèi)容BlogIDInt4Null針對評論的博客號CategoryIDInt4Null該評論的博客類別號ContentIDInt4Null針對博客標(biāo)題評論的內(nèi)容號CategoryNvarchar50Null評論所屬類別TimeNvarchar50Null發(fā)表評論的時間UsernameNvarchar50Null評論人姓名UrlNvarchar100Null評論人郵箱表7博客鏈接表(Href)列名數(shù)據(jù)類型長度允許空備注HrefIDInt4鏈接號,主鍵NameNvarchar50Null鏈接名字UrlNvarchar

22、200Null鏈接CategoryIDInt4Null鏈接所屬類別號BlogIDInt4Null鏈接所屬博客號表8博客圖片表(Picture)列名數(shù)據(jù)類型長度允許空備注PictureIDInt4圖片號,主鍵ImageUrlNvarchar200Null圖片鏈接SubjectNvarchar50Null圖片標(biāo)題CategoryIDInt4Null圖冊號BlogIDInt4Null圖片所屬博客號4.5系統(tǒng)實現(xiàn)4.5.1系統(tǒng)結(jié)構(gòu)圖根據(jù)前面的需求分析可以得出以下的系統(tǒng)結(jié)構(gòu)圖:博客系統(tǒng)后臺管理閱讀博客系統(tǒng)管理隨筆管理文章管理評論管理鏈接管理圖片管理賬戶管理密碼管理密碼管理圖4系統(tǒng)結(jié)構(gòu)圖各界面如下:(1)

23、、閱讀博客:圖5閱讀博客界面(2)、隨筆管理:(文章管理、評論管理、鏈接管理、圖片管理均類似)圖6隨筆管理界面后臺管理的密碼管理界面:圖7后臺管理的密碼管理界面系統(tǒng)管理主界面:圖8系統(tǒng)管理主界面系統(tǒng)管理的賬戶管理界面:圖9賬戶管理界面系統(tǒng)管理的密碼管理界面同后臺管理,如圖七。4.5.2 代碼實現(xiàn)整個系統(tǒng)的代碼實現(xiàn)均采用表現(xiàn)層、控制層、數(shù)據(jù)層來實現(xiàn),并且定義了一個抽象類DBObject類,其它一些類均由這個類繼承。具體實現(xiàn)的過程是用戶在頁面(表現(xiàn)層)激發(fā)事件,那么頁面的后臺代碼(控制層)作出回應(yīng),根據(jù)事件的不同來調(diào)用數(shù)據(jù)層對數(shù)據(jù)庫進(jìn)行操作。以下以隨筆管理為例來說明ASP.NET的代碼實現(xiàn)。(1)

24、實現(xiàn)表現(xiàn)層圖六所示即為隨筆管理列表頁面,它的代碼在BlogAdminEssayEssay.aspx中。這個頁面由三大部分組成。標(biāo)頭與導(dǎo)航欄做成了用戶控件,在左右的功能區(qū)中,左下角的分類列表是由一個列表控件Datalist捆綁數(shù)據(jù)后生成的,用到了ItemTemplate模板。ItemTemplate模板代碼如代碼1:代碼1ItemTemplate模板    頁面的中右區(qū)為隨筆信息列表,這也是由Datalist列表控件綁定數(shù)據(jù)后生成的,這里不僅定義了ItemTemplate,還定義了HeaderTemplate模板、AlternatingItemTempla

25、te模板、SeparatorTemplate模板和FooterTemlplate模板。如代碼2所示:代碼2DataList列表控件綁定數(shù)據(jù)標(biāo)題分類瀏覽人數(shù)評論人數(shù)操作    由于DataList不像DataGrid有自動分頁的功能,所以我在這個系統(tǒng)中引入了一個第三方控件AspNetPager進(jìn)行分頁管理。首先聲明控件:然后在頁面中插入分頁控件,如代碼3:代碼3分頁控件(2)實現(xiàn)控制層由于隨筆管理頁面兩次使用了DataList控件,所以要對DataList控件進(jìn)行數(shù)據(jù)綁定,于是添加一個BindData()方法來處理數(shù)據(jù)捆綁過程。里面定義的兩個參數(shù)BlogI

26、D和CategoryID分別為博客的編號和分類的編號,用來確定當(dāng)前顯示的是哪個博客中哪個分類中的隨筆內(nèi)容。程序如代碼4:代碼4隨筆數(shù)據(jù)綁定private void BindData(int BlogID,int CategoryID)DataSet cDs = cDAO.LoadList(BlogID,e);cDs.Tables0.Columns.Add(CategoryStr);for(int i=0;icDs.Tables0.Rows.Count;i+)cDs.Tables0.RowsiCategoryStr = +cDs.Tables0.RowsiName.ToString()+;thi

27、s.essayCategory.DataSource = cDs.Tables0.DefaultView;this.essayCategory.DataBind();DataSet eDs = eDAO.LoadList(BlogID,CategoryID,pager.PageSize*(pager.CurrentPageIndex-1),pager.PageSize,);eDs.Tables0.Columns.Add(Category);eDs.Tables0.Columns.Add(Info);eDs.Tables0.Columns.Add(Edit);eDs.Tables0.Column

28、s.Add(Remove);for(int i=0;ieDs.Tables0.Rows.Count;i+)eDs.Tables0.RowsiCategory = cDAO.Load(Convert.ToInt32(eDs.Tables0.RowsiCategoryID).Name;eDs.Tables0.RowsiInfo = 瀏覽;eDs.Tables0.RowsiEdit = 修改;eDs.Tables0.RowsiRemove = 刪除;essayList.DataSource = eDs.Tables0.DefaultView;essayList.DataBind();pager.Cu

29、stomInfoText=共+pager.PageCount.ToString()+頁,當(dāng)前為第+pager.CurrentPageIndex.ToString()+頁;這里面使用了數(shù)據(jù)庫操作對象CategoryDAO的LoadList方法獲取了DataSet對象對分類列表進(jìn)行綁定,而用創(chuàng)建的隨筆數(shù)據(jù)庫操作對EssayDAO的LoadList方法生成隨筆的列表。(3)實現(xiàn)數(shù)據(jù)層在隨筆管理的綁定的控制層中要使用到數(shù)據(jù)層的操作類,如EssayDAO的LoadList方法,它在BlogCore/EssayEssayDAO.cs文件中。代碼5隨筆數(shù)據(jù)層類public EssayVO Load(int

30、id)Connection.Open();SqlCommand sqlComm = new SqlCommand(select * from Essay where EssayID = + id,Connection);SqlDataReader tmpReader = sqlComm.ExecuteReader();EssayVO essayVO = new EssayVO();if(tmpReader.Read()essayVO.EssayID = Convert.ToInt32(tmpReaderEssayID.ToString();essayVO.BlogID = Convert.To

31、Int32(tmpReaderBlogID.ToString();essayVO.Subject = tmpReaderSubject.ToString();essayVO.Content = tmpReaderContent.ToString();essayVO.Time = tmpReaderTime.ToString();essayVO.View = Convert.ToInt32(tmpReaderView.ToString();essayVO.FeedBack = Convert.ToInt32(tmpReaderFeedBack.ToString();tmpReader.Close

32、();Connection.Close();return essayVO;EssayDAO是DBObject的子類,它完成了EssayVO對象的基本方法,包括對EssayVO對象的創(chuàng)建、修改、刪除、選取和列表方法。以下是DBObject子類的代碼及EssayVO類的代碼:代碼6DBObject.cspublic class DbObjectprotected SqlConnection Connection;private string connectionString;public DbObject()connectionString = System.Configuration.Confi

33、gurationSettings.AppSettingssqlConnection;Connection = new SqlConnection( connectionString );protected string ConnectionStringget return connectionString;代碼7EssayVO.cspublic class EssayVOprivate int essayID;private string subject;private string content;private string time;private int view;private in

34、t feedBack;private int categoryID;private int blogID;public int EssayIDget return essayID;set essayID = value;public string Subjectget return subject;set subject = value;public string Contentget return content;set content = value;public string Timeget return time;set time = value;public int Viewget return view;set view = value;public int FeedBackget return feedBack;set feedBack = value;public int CategoryIDget return categoryID;set categoryID = value;public int BlogIDget return blogID;set blogID = value;實現(xiàn)小結(jié)MVC模式下的代碼實現(xiàn)正是基本如隨筆管理所示,分為多層進(jìn)行實現(xiàn),在表現(xiàn)層根據(jù)分類以指定表格的形式

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論