版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 在Internet飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們政治、經(jīng)濟(jì)、生活等各個(gè)方面發(fā)揮著重要的作用。Internet上發(fā)布信息主要是通過網(wǎng)站來實(shí)現(xiàn)的,獲取信息也是要在Internet“海洋”中按照一定的檢索方式將所需要的信息從網(wǎng)站上下載下來。因此網(wǎng)站建設(shè)在Internet應(yīng)用上的地位顯而易
2、見,它已成為政府、企事業(yè)單位信息化建設(shè)中的重要組成部分,從而倍受人們的重視。為了更好的辦學(xué),提高學(xué)校知名度,特構(gòu)建湖南網(wǎng)絡(luò)工程職業(yè)技術(shù)學(xué)院網(wǎng)站。</p><p> 關(guān)鍵字 網(wǎng)站建設(shè);校園網(wǎng); CMS管理系統(tǒng);SQL;ASP.NET;Microsoft Visual Studio 2005 Macromedia Dreamweaver 8</p><p><b> 目 錄&l
3、t;/b></p><p><b> 第一章概 述1</b></p><p> 1.1 設(shè)計(jì)思想1</p><p> 1.2開發(fā)工具的選用及介紹1</p><p> 1.3 ASP.NET訪問數(shù)據(jù)庫的原理2</p><p> 第二章 系統(tǒng)分析3</p>&
4、lt;p><b> 2.1需求分析3</b></p><p> 2.2網(wǎng)站及系統(tǒng)目標(biāo)設(shè)計(jì)4</p><p> 2.3網(wǎng)站前臺各欄目模塊設(shè)計(jì)4</p><p> 2.4網(wǎng)站管理系統(tǒng)CSM各功能模塊設(shè)計(jì)5</p><p><b> 2.5數(shù)據(jù)流圖5</b></p>
5、<p> 第三章 數(shù)據(jù)庫設(shè)計(jì)8</p><p> 3.1數(shù)據(jù)庫需求分析8</p><p> 3.2數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)8</p><p> 3.2數(shù)據(jù)庫關(guān)系圖12</p><p> 第四章 網(wǎng)站前臺的具體實(shí)現(xiàn)13</p><p> 4.1 網(wǎng)站前臺開發(fā)的基本步驟13</p>
6、<p> 4.2 具體頁面的實(shí)現(xiàn)13</p><p> 4.3 結(jié)果分析16</p><p> 第五章 網(wǎng)站管理系統(tǒng)CMS的具體實(shí)現(xiàn)17</p><p> 5.1 ASP.NET應(yīng)用程序開發(fā)的基本步驟17</p><p> 5.2 類結(jié)構(gòu)的實(shí)現(xiàn)17</p><p> 5.3 具體頁面的實(shí)
7、現(xiàn)17</p><p> 5.4 結(jié)果分析34</p><p><b> 結(jié)束語35</b></p><p><b> 致 謝36</b></p><p><b> 參考文獻(xiàn)37</b></p><p><b> 成績評
8、定表38</b></p><p><b> 概 述</b></p><p><b> 1.1 設(shè)計(jì)思想</b></p><p> 通過網(wǎng)站,全面宣傳,展示學(xué)校風(fēng)采、優(yōu)點(diǎn)與特色,發(fā)布學(xué)校的重大活動安排與招生政策,增強(qiáng)家長與學(xué)校之間的聯(lián)系,在Internet上實(shí)現(xiàn)完成部分校務(wù),提高辦事效率。</p&g
9、t;<p> 1.2開發(fā)工具的選用及介紹</p><p> 本網(wǎng)站是在visual Studio 2005下采取ASP.NET技術(shù)開發(fā)的。</p><p> 傳統(tǒng)的網(wǎng)站新聞管理方式有兩種,一是靜態(tài)HTML頁面,更新信息時(shí)需要重新制作頁面然后上傳頁面并修改相應(yīng)鏈接,這種方式因?yàn)樾侍鸵巡欢嘤?。二是基于ASP和腳本語言,將動態(tài)網(wǎng)頁和數(shù)據(jù)庫結(jié)合,通過應(yīng)用程序來處理新聞,這是
10、目前較為流行的做法。但是由于ASP本身的局限性使得系統(tǒng)有一些不可克服的缺陷,而采取了ASP.NET技術(shù)的系統(tǒng)性能上有了很大的改善,其主要表現(xiàn)在以下幾方面:</p><p> 1.由于ASP頁面每次打開都必須經(jīng)過先編譯后解釋的過程,所以頁面在反復(fù)打開時(shí)速度沒有任何提升,而ASP.NET頁面只需要一次編譯后不需要重新編譯,直到該頁面被修改或Web應(yīng)用程序重新啟動。這使得在多次訪問時(shí)速度有了極大的提升。</p&
11、gt;<p> 2.由于ASP沒有提供任何輸出數(shù)據(jù)為內(nèi)容的元件,所以在使用ASP撰寫數(shù)據(jù)庫頁面時(shí)只能借助ADO的RecordSet對象逐筆讀取記錄,而ASP.NET通過ADO.NET提供的DataGrid等數(shù)據(jù)庫元件可以直接和數(shù)據(jù)庫聯(lián)系。</p><p> 3.ASP.NET支持應(yīng)用程序的實(shí)時(shí)更新。管理員不必關(guān)掉網(wǎng)絡(luò)服務(wù)器或者甚至不用停止應(yīng)用程序的運(yùn)行就可以更新應(yīng)用文件。應(yīng)用程序文件永遠(yuǎn)不會被加
12、鎖,因此甚至在程序運(yùn)行時(shí)文件就可以被覆蓋。當(dāng)文件更新后,系統(tǒng)會溫和地轉(zhuǎn)換到新的版本。</p><p> 4.ASP.NET采取"code-behind"方式編寫代碼使得代碼更易于編寫,結(jié)構(gòu)更清晰,降低了系統(tǒng)的開發(fā)與維護(hù)的復(fù)雜度和費(fèi)用。</p><p> 1.3 ASP.NET訪問數(shù)據(jù)庫的原理</p><p> 與數(shù)據(jù)庫相連,ASP.NET提
13、供了如下3種方式:通過ODBC相連;通過OLEDB相連;直接與SQL Server相連。3種方式由于應(yīng)用層次的差異,使得效率由低到高,獨(dú)立性由高到低。對于相連數(shù)據(jù)庫的數(shù)據(jù)處理,也有2種方式,即一種是通過DataSet來隔離異構(gòu)的數(shù)據(jù)源,另一種是以流方式從數(shù)據(jù)源讀取(DataReader方式)。</p><p> 傳統(tǒng)的應(yīng)用程序是通過先建立到數(shù)據(jù)庫的連接,在程序的整個(gè)運(yùn)行過程中維護(hù)連接的方式來設(shè)計(jì)的。ASP.NE
14、T采取了斷開連接方式的數(shù)據(jù)結(jié)構(gòu)。當(dāng)瀏覽器向Web服務(wù)器請求網(wǎng)頁時(shí),服務(wù)器處理這個(gè)請求,并將所請求的網(wǎng)頁發(fā)送給瀏覽器,然后連接就被斷開,直到瀏覽器發(fā)出下一個(gè)請求。ADO.NET的另一個(gè)創(chuàng)新是引入了數(shù)據(jù)集(Dataset)。一個(gè)數(shù)據(jù)集是內(nèi)存中提供數(shù)據(jù)關(guān)系圖的高速緩沖區(qū)。數(shù)據(jù)集對數(shù)據(jù)源一無所知,它們可以由程序或通過從數(shù)據(jù)倉庫中調(diào)入數(shù)據(jù)而被生成、填充。不論數(shù)據(jù)從何處獲取,數(shù)據(jù)集都是通過使用同樣的程序模板而被操作的,并且它使用相同的潛在的數(shù)據(jù)緩
15、沖區(qū)。</p><p><b> 第二章 系統(tǒng)分析</b></p><p><b> 2.1需求分析</b></p><p> 立足于校園實(shí)際,著眼于未來發(fā)展,建成符合標(biāo)準(zhǔn)化協(xié)議、通用性較強(qiáng)、實(shí)用的網(wǎng)站系統(tǒng),以提高網(wǎng)絡(luò)現(xiàn)代化管理水平,實(shí)現(xiàn)信息資源的共享。現(xiàn)在校園網(wǎng)是由靜態(tài)html、基于asp和腳本語言相結(jié)合的網(wǎng)站,對
16、其管理操作繁瑣,效率低。通過升級,運(yùn)用ASP.net將其整合,使其管理操作方便,效率更高、更容易開發(fā)和修改。從而實(shí)現(xiàn):</p><p> 1、增強(qiáng)性能。ASP.net是在服務(wù)器上運(yùn)行的編譯好的公共語言運(yùn)行庫代碼。與被解釋的前輩不同,ASP.net可利用早期綁定、實(shí)時(shí)編譯、本機(jī)優(yōu)化和核外緩存服務(wù)。這相當(dāng)于在編寫代碼之前便提高了性能。</p><p> 2、提高威力和靈活性。由于ASP.n
17、et基于公共語言運(yùn)行庫,因此Web應(yīng)用程序開發(fā)人員可以利用整個(gè)平臺的威力和靈活性。.NET框架類庫、數(shù)據(jù)訪問解決方案都可以從Web無縫訪問。</p><p> 3、提高簡易性。ASP.net使執(zhí)行常見任務(wù)變得容易,從簡單的窗體提交和客戶端身份驗(yàn)證到部署和站點(diǎn)配置。</p><p> 4、提高可管理性。ASP.net采用基于文本的分層配置系統(tǒng),簡化了將設(shè)置應(yīng)用與服務(wù)器環(huán)境和Web應(yīng)用程序
18、。由于配置信息以純文本形式存儲的,因此可以在沒有本地管理工具幫助的情況下應(yīng)用新設(shè)置。</p><p> 4、提高可縮放和可用性。ASP.net在設(shè)計(jì)時(shí)考慮了可縮放性,增加了專門用于在聚集環(huán)境和多處理器環(huán)境中提高性能的功能。</p><p> 5、提高自定義和可擴(kuò)展性。ASP.net中,可以用自己編寫的自定義組件擴(kuò)展或替換ASP.net運(yùn)行庫的任何子組件。</p><
19、p> 6、提高安全性。借助內(nèi)置的Windows身份驗(yàn)證和基于每個(gè)應(yīng)用程序的配置,可以保證應(yīng)用程序是安全的。</p><p> 2.2網(wǎng)站及系統(tǒng)目標(biāo)設(shè)計(jì)</p><p> 網(wǎng)站開發(fā)的總目標(biāo)是運(yùn)用ASP.net將網(wǎng)站整合,使其管理操作方便,效率更高、更容易開發(fā)和修改。</p><p> 能夠在CMS系統(tǒng)中對用戶進(jìn)行注冊登記,分配用戶的權(quán)限,對用戶進(jìn)行鎖定和
20、解鎖等管理。</p><p> 能夠添加管理類別,類別支持四級聯(lián)動。</p><p> 能夠添加管理類別內(nèi)容,包括標(biāo)題、圖片、內(nèi)容、發(fā)布者、是否審核、添加時(shí)間等信息。</p><p> 能夠?qū)ξ募芾砗蛿?shù)據(jù)庫的備份和還原。</p><p> 提供方便的查詢方法。如:標(biāo)題、內(nèi)容等信息進(jìn)行信息檢索。提供較為完善的差錯(cuò)控制與友好的用戶界面,
21、盡量避免誤操作。</p><p> 2.3網(wǎng)站前臺各欄目模塊設(shè)計(jì)</p><p> 網(wǎng)站前臺包括:首頁、學(xué)院概況、新聞中心、教育教學(xué)、學(xué)團(tuán)風(fēng)采、系部設(shè)置、招生就業(yè)、思政黨建、科研督導(dǎo)、后勤服務(wù)。其欄目模塊圖,如圖2.1所示:</p><p> 圖2.1 網(wǎng)站欄目模塊</p><p> 2.4網(wǎng)站管理系統(tǒng)CMS各功能模塊設(shè)計(jì)</p
22、><p> 網(wǎng)站管理系統(tǒng)CMS包括:網(wǎng)站常規(guī)管理、欄目分類管理、欄目內(nèi)容管理、用戶權(quán)限管理。其欄目模塊圖,如圖2.2所示:</p><p> 圖2.2 網(wǎng)站后臺管理系統(tǒng)欄目模塊</p><p><b> 2.5數(shù)據(jù)流圖</b></p><p> ?。?)文件信息編輯及查詢, 如圖2.3所示:</p>&l
23、t;p> 圖2.3 圖文件信息編輯及查詢</p><p> 說明:此項(xiàng)只有超級管理員才可以操作??梢詾g覽整個(gè)網(wǎng)站的文件及結(jié)構(gòu),添加和編輯文件。</p><p> (2)數(shù)據(jù)備份還原, 如圖2.3所示:</p><p> 圖2.3 圖數(shù)據(jù)備份還原</p><p> 說明:輸入備份數(shù)據(jù)庫名單擊開始備份即可進(jìn)行備份,不要輕易進(jìn)行還原
24、操作。</p><p> (3)欄目分類添加及編輯,如圖2.4所示:</p><p> 圖2.4 欄目分類添加及編輯</p><p> 說明:管理員根據(jù)自己的權(quán)限對相應(yīng)的類進(jìn)行管理,分類目前只支持四級。</p><p> (4)欄目內(nèi)容添加及編輯, 如圖2.5所示:</p><p> 圖2.5 欄目內(nèi)容的添加
25、及編輯</p><p> (5)用戶權(quán)限的添加及編輯, 如圖2.6所示:</p><p> 圖2.6用戶權(quán)限的添加及編輯</p><p> 說明:管理員可以修改自己的密碼,超級管理員可以添加管理員和管理成員并對管理員進(jìn)行權(quán)限分配。</p><p><b> 第三章 數(shù)據(jù)庫設(shè)計(jì)</b></p><
26、;p> 3.1數(shù)據(jù)庫需求分析</p><p> 經(jīng)需求和分析,針對本網(wǎng)站的需求和對CMS系統(tǒng)圖的分析,設(shè)計(jì)如下的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)</p><p> 分類信息:包括編號,編碼,父編碼,類型,名稱,顯示名稱,前臺鏈接,后天鏈接,是否回收。</p><p> 新聞信息:包括編號,標(biāo)題,圖片,類別名稱,類別編碼,內(nèi)容,發(fā)布者,發(fā)布日期,點(diǎn)擊率,是否審核,是否回
27、收,標(biāo)識。</p><p> 評論信息:包括編號,標(biāo)題,新聞編號,新聞標(biāo)題,評論內(nèi)容,評論者,評論日期。</p><p> 概況信息:包括編號,標(biāo)題,圖片,類別名稱,類別編碼,內(nèi)容,發(fā)布者,發(fā)布日期,是否審核,是否回收,標(biāo)識。</p><p> 部門信息:包括編號,標(biāo)題,圖片,鏈接,內(nèi)容,發(fā)布者,發(fā)布日期,是否審核,是否回收。</p><p
28、> 友情鏈接信息:包括編號,標(biāo)題,圖片,鏈接,內(nèi)容,發(fā)布者,發(fā)布日期,是否審核,是否回收。</p><p> 用戶信息:包括編號,用戶名,密碼,是否鎖定,注冊日期,最后登錄日期,登錄次數(shù),標(biāo)識。</p><p> 用戶權(quán)限信息:包括編號,用戶編號,類型,類別編碼,權(quán)限說明,標(biāo)識。</p><p> 備份還原信息:包括編號,備份名稱,備份路徑,備份日期,
29、還原日期。</p><p> 3.2數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)</p><p> 數(shù)據(jù)庫設(shè)計(jì)有幾個(gè)范式,一般我們要做到的是第三范式,即數(shù)據(jù)表中沒有冗余字段以及同一個(gè)表中的字段沒有函數(shù)依賴關(guān)系,,函數(shù)依賴性就是一個(gè)表中的字段間不應(yīng)該有計(jì)算關(guān)系,如一個(gè)表中有單價(jià)字段、數(shù)量字段,就不應(yīng)該有一個(gè)總金額字段。如果程序運(yùn)行過程中需要總金額,可以實(shí)時(shí)計(jì)算。不過在一些較常用的表中,我們可以適當(dāng)?shù)乇A羧哂嘧侄?,這樣
30、,在程序運(yùn)行過程中可以減少由于表間互相關(guān)聯(lián)而使用速度降低等問題。這就是所謂的第四范式。數(shù)據(jù)表設(shè)計(jì)時(shí),最好不要使用用戶輸入的信息作為主鍵,每一個(gè)數(shù)據(jù)表自己定義一個(gè)主鍵,添加信息是由程序自動添加,這樣就可以減少數(shù)據(jù)更新時(shí)產(chǎn)生的錯(cuò)誤。表與表相關(guān)聯(lián)的外鍵最好是由程序自動生成的主鍵,這樣數(shù)據(jù)庫就比較規(guī)范了。數(shù)據(jù)庫初期設(shè)計(jì)時(shí)一定要謹(jǐn)慎,把所有可能的情況都考慮進(jìn)去,即使當(dāng)時(shí)沒有用到,也要將它留在數(shù)據(jù)庫中作為備用字段以便將來擴(kuò)充。</p>
31、<p> 程序一旦開始編碼,就應(yīng)該盡量避免再修改數(shù)據(jù)庫。因?yàn)槿绻麛?shù)據(jù)庫結(jié)構(gòu)一旦改變,所有與修改的數(shù)據(jù)表相關(guān)的業(yè)務(wù)都有可能受到影響,而某些影響還很難看到,這樣就容易形成一個(gè)惡性循環(huán)。錯(cuò)誤越改越多,越改越亂,最終導(dǎo)致程序的失敗。</p><p> 圖書管理系統(tǒng)數(shù)據(jù)庫中各個(gè)表的設(shè)計(jì)結(jié)果如下面幾個(gè)表格所示。</p><p> 分類信息表,如表3.1</p><
32、p> 說明:編號設(shè)為主鍵.</p><p> 表3.1 分類信息表</p><p> 新聞信息表,如表3.2</p><p> 說明:編號設(shè)為主鍵,類別編碼設(shè)為外鍵。</p><p> 表3.2 新聞信息表</p><p> 評論信息表,如表3.3</p><p> 說明:標(biāo)
33、號設(shè)為主鍵,新聞編號設(shè)為外鍵。</p><p> 表3.3 評論信息表</p><p> 概況信息表,如表3.4</p><p> 說明:編號設(shè)為主鍵,類別編碼設(shè)為外鍵。</p><p> 表3.4 概況信息表</p><p> 部門信息表,如表3.5</p><p> 表3.5 部
34、門信息表</p><p> 友情鏈接信息表,如表3.5</p><p> 說明:編號設(shè)為主鍵。</p><p> 表3.5 友情鏈接信息表</p><p> 用戶信息表,如表3.6</p><p><b> 說明:用戶名為主鍵</b></p><p> 表3.6
35、 用戶信息表</p><p> 用戶權(quán)限表,如表3.7</p><p><b> 說明:編號為主鍵</b></p><p> 表3.7 用戶權(quán)限表</p><p><b> 3.2數(shù)據(jù)庫關(guān)系圖</b></p><p> 第四章 網(wǎng)站前臺的具體實(shí)現(xiàn)</p>
36、<p> 4.1 網(wǎng)站前臺開發(fā)的基本步驟</p><p> 創(chuàng)建頁面和使用ASP.NET應(yīng)用程序大致可分為四個(gè)步驟:</p><p> ?。?)建立網(wǎng)站頁面。</p><p><b> ?。?)設(shè)置屬性。</b></p><p><b> ?。?)編寫代碼。</b></p&g
37、t;<p> ?。?)保存和運(yùn)行程序。</p><p> 4.2 具體頁面的實(shí)現(xiàn)</p><p> (1)首頁 (index.aspx)</p><p> 本網(wǎng)站采用div+css布局,布局新穎,打破了以往的方正結(jié)構(gòu),如國字型。首頁簡介大方,以綠色為主色調(diào),象征著青春活力,充滿著勃勃生機(jī)。</p><p> 首頁名為:i
38、ndex , 首頁界面如圖4.1所示:</p><p> 圖4.1 首頁界面</p><p><b> 主要代碼如下:</b></p><p><b> //綁定校園新聞</b></p><p> string sql = "select top 8 * from tb_news
39、 where news_class_code in('L0202','L0203','L0204','L0205') and news_check='1' and news_recyle='1'";</p><p> this.GridView1.DataSource = access.GreatDs(sq
40、l);</p><p> this.GridView1.DataBind();</p><p><b> //綁定最新公告</b></p><p> newsmanage.News_Class_Code = "L0206";</p><p> DataSet newsds = newsmana
41、ge.FindNewsByClass(newsmanage ,"tb_news");</p><p> this.GridView2.DataSource = newsds;</p><p> this.GridView2.DataBind();</p><p> ?。?)二級頁面(Default.aspx)</p><p
42、> 二級頁面有學(xué)院概況,新聞中心等頁面,頁面default依據(jù)類別編碼顯示對應(yīng)的內(nèi)容。</p><p> 二級頁面名為:Default,二級頁面界面如圖4.2所示:</p><p> 圖4.2 二級頁面界面</p><p><b> 主要代碼如下:</b></p><p> #region 按類別顯示新
43、聞</p><p> PagedDataSource ps = new PagedDataSource();</p><p> newsmanage.News_Class_Code = Request["right_code"].ToString();</p><p> string sql1 = "select * from s
44、ys_right where right_code= '" + Request["right_code"].ToString() + "'";</p><p> DataTable dt = new DataTable();dt = access.GreatDs(sql1).Tables[0];</p><p> if
45、(dt.Rows.Count > 0) { this.Label1.Text = Label2.Text = dt.Rows[0]["right_text"].ToString();}</p><p> string sql = "select * from tb_news where news_class_code='" + Request["r
46、ight_code"].ToString() + "' and news_check='1' and news_recyle='1'";</p><p> SqlDataAdapter adp = new SqlDataAdapter(sql, con);</p><p> DataSet ds = new Data
47、Set();</p><p> adp.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "tb_news");</p><p> ps.DataSource = ds.Tables["tb_news"].Def
48、aultView; ps.AllowPaging = true; </p><p> ps.PageSize = 10; this.rpt_news.DataSource = ds.Tables["tb_news"];</p><p> this.rpt_news.DataBind();</p><p> #endregi
49、on</p><p> ?。?)三級頁面(onews.aspx)</p><p> 三級頁面依據(jù)二級頁面的傳值顯示詳細(xì)內(nèi)容,新聞頁面可以對新聞發(fā)表評論。</p><p> 三級頁面名為:onews , 三級頁面界面如圖4.3所示:</p><p> 圖4.3 圖書入庫窗體界面</p><p><b>
50、 主要代碼如下:</b></p><p> #region 顯示新聞內(nèi)容</p><p> newsmanage.News_Id = Convert.ToInt32(Request["news_id"].ToString());</p><p> DataTable dt = new DataTable();</p>
51、<p> dt = newsmanage.FindNewsByID(newsmanage, "tb_news").Tables[0];</p><p> sPagesTitle = this.lblTile.Text = dt.Rows[0]["news_title"].ToString();</p><p> this.lblA
52、uthor.Text = dt.Rows[0]["news_author"].ToString();</p><p> this.lblTime.Text =dt.Rows[0]["news_time"].ToString().Substring(0, 9);</p><p> this.lblHit.Text = dt.Rows[0][&quo
53、t;news_hit"].ToString();</p><p> this.lblConent.Text = dt.Rows[0]["news_content"].ToString();</p><p> #endregion</p><p><b> 4.3 結(jié)果分析</b></p><
54、;p> 以上是“網(wǎng)站前臺”開發(fā)的主要過程,前臺總共只有4個(gè)頁面,但4個(gè)頁面的集成度很高,一個(gè)頁面具有多種功能。后臺每添加一個(gè)類或內(nèi)容都會綁定當(dāng)前臺相應(yīng)的頁面上。二級頁面里的類別是于數(shù)據(jù)庫動態(tài)綁定的,包括顯示內(nèi)容和鏈接地址等都可以在后臺動態(tài)添加和修改。校園風(fēng)光一欄采用JS+CSS+DIV實(shí)現(xiàn)了圖片展示的動感效果。當(dāng)然還存在許多的不足:不夠美觀,實(shí)用性、靈活性還不是很好等。</p><p> 第五章 網(wǎng)站管
55、理系統(tǒng)CMS的具體實(shí)現(xiàn)</p><p> 5.1 ASP.NET應(yīng)用程序開發(fā)的基本步驟</p><p> 創(chuàng)建和使用VB.NET應(yīng)用程序大致可分為四個(gè)步驟:</p><p> (1)建立應(yīng)用程序頁面。</p><p><b> (2)設(shè)置屬性。</b></p><p><b>
56、?。?)編寫代碼。</b></p><p> ?。?)保存和運(yùn)行程序。</p><p> 5.2 類結(jié)構(gòu)的實(shí)現(xiàn)</p><p> 圖5.1 類結(jié)構(gòu)圖</p><p> 5.3 具體頁面的實(shí)現(xiàn)</p><p> ?。?)登錄頁面 (Login)</p><p> .net程序
57、由一個(gè)應(yīng)用程序開始,即每個(gè).net程序在開始運(yùn)行時(shí),先執(zhí)行應(yīng)用程序?qū)ο蟮腖oad事件。通過調(diào)用database類連接數(shù)據(jù)庫。本窗口主要是檢查操作員輸入的用戶名、密碼及驗(yàn)證碼是否正確,如果正確,允許登錄進(jìn)入到主菜單頁面。如果錯(cuò)誤,顯示出錯(cuò)誤提示。填寫“用戶名”、“密碼”與選擇“驗(yàn)證碼”后,點(diǎn)擊“登錄”按鈕進(jìn)行驗(yàn)證,點(diǎn)擊“取消登錄”退出。</p><p> 登錄頁面名為:Login , 登錄頁面界面如圖5.2所示:
58、</p><p> 圖5.2 登錄頁面界面</p><p><b> 主要代碼如下:</b></p><p> if (txtAdmin.Text == string.Empty)</p><p> {Response.Write("<script>alert('管理員名稱不能為空
59、!')</script>");</p><p><b> return; }</b></p><p><b> else</b></p><p> {DataSet adminds = null;</p><p> adminmanage.Name = this
60、.txtAdmin.Text;</p><p> adminmanage.Pwd = this.txtPwd.Text;</p><p> adminds = adminmanage.Login(adminmanage);</p><p> if (adminds.Tables[0].Rows.Count > 0 && this.txtC
61、ode.Text.Trim() ==Convert.ToString( Request.Cookies["CheckCode"].Value))</p><p> {if (adminds.Tables[0].Rows[0]["user_islock"].ToString() == "unlock")</p><p> {Se
62、ssion["Name"] = txtAdmin.Text;</p><p> Session["id"] = adminds.Tables[0].Rows[0]["user_id"].ToString();</p><p> Response.Redirect("index.html");}</p&
63、gt;<p><b> else</b></p><p> {Response.Write("<script>alert('該賬號已被凍結(jié),請與超級管理員聯(lián)系!')</script>");}}</p><p> else if (this.txtCode.Text.Trim() != Co
64、nvert.ToString(Request.Cookies["CheckCode"].Value))</p><p> {Response.Write("<script>alert('驗(yàn)證碼不正確!')</script>");</p><p> this.txtCode.Text= string.Empt
65、y;</p><p> this.txtPwd.Focus();}</p><p><b> else</b></p><p> {Response.Write("<script>alert('登錄名或密碼不正確!')</script>");}}</p><p
66、> (2)管理系統(tǒng)CMS主界面(index.html)</p><p> 若以超級管理員身份進(jìn)入則可進(jìn)行使用菜單所有項(xiàng),若以一般用戶身份進(jìn)入到主菜單窗體則只有自己擁有的權(quán)限范圍內(nèi)完成相應(yīng)的操作。主界面中會顯示正在使用系統(tǒng)的管理員相關(guān)信息,包括管理員名稱、擁有的權(quán)限、注冊日期、登錄次數(shù)等信息。</p><p> 管理系統(tǒng)CMS主界面:index.html,管理系統(tǒng)CMS主界面界面
67、如圖5.3示:</p><p> 圖5.3管理系統(tǒng)主界面</p><p><b> 主要代碼如下:</b></p><p> string username = Session["Name"].ToString();</p><p> DataTable dt = new DataTable(
68、);DataTable dtrole1 = new DataTable();</p><p> //以下代碼完成了datatable的構(gòu)架,但是里面是沒有任何數(shù)據(jù)的</p><p> DataTable dtrole2 = new DataTable("tb_class");</p><p> DataColumn dc1 = dtrole
69、2.Columns.Add("right_code", typeof(string));</p><p> DataColumn dc2 = dtrole2.Columns.Add("right_text", typeof(string));</p><p> DataColumn dc = dtrole2.Columns.Add("r
70、ight_url_ht", typeof(string)); </p><p> dt = rolemanage.FindRoleByUserName("sys_role", username).Tables[0];</p><p> string s = dt.Rows[0]["role_desc"].ToString()
71、; </p><p> string[] ss = s.Split('|'); string sql = "";</p><p> for (int i = 0; i < ss.Length-1; i++)</p><p> {sql = "select * from sys_right wher
72、e right_code='" + ss[i] + "'and right_recyle='1'";</p><p> dtrole1 = access.GreatDs(sql).Tables[0];</p><p> string right_code = dtrole1.Rows[0]["right_code&
73、quot;].ToString();</p><p> string right_text = dtrole1.Rows[0]["right_text"].ToString();</p><p> string right_url_ht = dtrole1.Rows[0]["right_url_ht"].ToString();</p>
74、<p> DataRow row = dtrole2.NewRow();row["right_code"] = right_code;</p><p> row["right_text"] = right_text; row["right_url_ht"] = right_url_ht;</p><p> dt
75、role2.Rows.Add(row); } DataSet ds = new DataSet();</p><p> ds.Tables.Add(dtrole2);</p><p> this.Repeater1.DataSource = ds.Tables[0].DefaultView; </p><p> this.Repeater1.DataBind(
76、); </p><p> ?。?)文件管理頁面(FileManage.aspx)</p><p> 超級管理員可以對整個(gè)網(wǎng)站的文件進(jìn)行管理,包括文件的添加、上傳、刪除、修改文件內(nèi)容及文件名稱的重命名。</p><p> 文件管理頁面:FileManage.aspx, 文件管理頁面界面如圖5.4所示:</p><p> 圖5.4 文件管
77、理界面</p><p><b> 主要代碼如下:</b></p><p><b> // 操作處理</b></p><p> FileManagerProcessor fileManage = new FileManagerProcessor(Request.QueryString["act"])
78、;</p><p> builder.Append(fileManage.Value);</p><p> if (string.IsNullOrEmpty(folderPath))</p><p><b> {</b></p><p> folderPath = Server.MapPath(".&q
79、uot;);</p><p><b> }</b></p><p> // 組合路徑, 快速導(dǎo)航</p><p> string comePath = "";</p><p> foreach (string q in folderPath.Split('\\'))</p
80、><p><b> {</b></p><p> comePath += q;</p><p> currPath.AppendFormat("<a href=\"filemanage.aspx?path={1}\">{0}</a>", q + "\\", c
81、omePath);</p><p> comePath += "\\";</p><p><b> }</b></p><p><b> // 返回上級</b></p><p> if (new DirectoryInfo(folderPath).Root.ToStrin
82、g().Replace("\\", "") != folderPath.ToUpper())</p><p><b> {</b></p><p> string previousFolder = folderPath.Substring(0, folderPath.LastIndexOf("\\"));
83、</p><p> backHtml = "<tr class=\"m-row2\"><td colspan=\"5\"><a href=\"filemanage.aspx?path=" + Server.UrlEncode(previousFolder) + "\"><img s
84、rc=\"Images/IcoLeft.gif\" alt=\"返回上級\" align=\"absmiddle\" /> 返回上級</a></td></tr>";</p><p><b> }</b></p><p><b> else<
85、;/b></p><p><b> {</b></p><p> folderPath += "\\";</p><p><b> }</b></p><p><b> // 綁定數(shù)據(jù)</b></p><p> fil
86、eManage = new FileManagerProcessor();</p><p> List<FileFolderInfo> files = fileManage.GetDirectories(folderPath);</p><p> if (fileManage.Access)</p><p><b> {</b>
87、;</p><p> folderNum = fileManage.FolderNum;</p><p> fileNum = fileManage.FileNum;</p><p> rptList.DataSource = files;</p><p> rptList.DataBind();</p><p&g
88、t;<b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> builder.Append("無權(quán)限訪問該目錄. <a href='javascript:history.go(-1);' style
89、='font-weight: normal'>后退</a>");</p><p><b> }</b></p><p> if (builder.ToString() != "")</p><p><b> {</b></p><p&
90、gt; string builderResult = builder.ToString();</p><p> builder = new System.Text.StringBuilder("");</p><p> builder.AppendFormat("<script type=\"text/javascript\"&
91、gt;$(\"#tips\").show(); $(\"#tipsMsg\").html(\"{0}\"); </script>", builderResult.Replace(@"\", @"\\"));</p><p><b> }</b></p>&
92、lt;p> (4)備份還原管理頁面(DB_BackUp.aspx)</p><p> 備份還原管理。管理員可以對數(shù)據(jù)庫進(jìn)行備份和還原,但注意的地方就是不要輕易的還原,以免數(shù)據(jù)的丟失。</p><p> 備份還原管理頁面名為:DB_BackUp.aspx, 備份還原管理頁面界面如圖5.5所示:</p><p> 圖5.5 借書窗體界面</p>
93、<p><b> 主要代碼如下:</b></p><p><b> //開始備份</b></p><p> SqlConnection con = DB.CreateCon();</p><p> myupimg oper = new myupimg();//文件操作類</p><
94、p> DbOper dbdo = new DbOper();//數(shù)據(jù)庫備份類</p><p> string bkname = this.TextBox1.Text;</p><p> string bkpath = Server.MapPath(@"backup\" + bkname + ".bat");</p><
95、p> oper.CreateFolder(@"backup\");</p><p> string bktime = DateTime.Now.ToString("d");</p><p> string rstime = "";</p><p> //數(shù)據(jù)庫備份并寫入數(shù)據(jù)庫</p>
96、;<p> dbdo.DbBackup(".", "sa", "", "lgzy", bkpath, bkname, "數(shù)據(jù)備份");</p><p> string sql = "insert into sys_backup(backup_name,backup_path,backup
97、_time,backup_rs_time) values('" + bkname + "','" + bkpath + "','" + bktime + "','" + rstime + "');";</p><p> access.DoSql(sql);&l
98、t;/p><p><b> //數(shù)據(jù)重新綁定</b></p><p> BindTomyGrid();</p><p> ?。?)添加分類頁面(ClassAdd.aspx)</p><p> 添加分類。超級管理員可以添加所有的分類,管理員只可對權(quán)限范圍內(nèi)的類別進(jìn)行添加。</p><p> 添加
99、分類頁面名為:ClassAdd.aspx, 添加分類頁面界面如圖5.6所示:</p><p> 圖5.6添加分類頁面</p><p><b> 主要代碼如下:</b></p><p><b> //自動編碼初始化</b></p><p> if (Request["right_id
100、"] != null)</p><p><b> {</b></p><p> this.Label1.Text=this.Label2.Text= "修改分類";</p><p> this.btnBack.Visible = true;</p><p> this.ddlPare
101、ntTitle.AutoPostBack = false;</p><p> rightmanage.Right_ID =Convert.ToInt32(Request["right_id"].ToString());</p><p> DataTable dt = new DataTable();</p><p> dt = rightm
102、anage.FindRigthInfByID(rightmanage,"sys_right").Tables[0];</p><p> this.txtCode.Text=dt.Rows[0]["right_code"].ToString();</p><p> this.txtHTUrl.Text = dt.Rows[0]["righ
103、t_url_ht"].ToString();</p><p> this.txtTip.Text = dt.Rows[0]["right_tip"].ToString();</p><p> this.txtTitle.Text = dt.Rows[0]["right_text"].ToString();</p><
104、p> this.txtUrl.Text = dt.Rows[0]["right_url"].ToString();</p><p> this.ddlParentTitle.SelectedValue = dt.Rows[0]["right_parent_code"].ToString();</p><p> this.ddlType.S
105、electedValue = dt.Rows[0]["right_type"].ToString();</p><p><b> }</b></p><p><b> Else</b></p><p><b> {</b></p><p> this
106、.Label1.Text = this.Label2.Text= "添加分類";</p><p> this.btnBack.Visible =false;</p><p> rightmanage.Right_Parent_Code = this.ddlParentTitle.Items[0].Value;</p><p> DataSe
107、t ds1 = rightmanage.FindAllRightByParentCode(rightmanage, "Folder", "sys_right");</p><p> int t = ds1.Tables[0].Rows.Count;</p><p> rightcode = "L0" + (Convert.To
108、Int32(ds1.Tables[0].Rows[ds1.Tables[0].Rows.Count - 1][0].ToString().Substring(1, 2)) + 1);</p><p> this.txtCode.Text = rightcode;</p><p> this.txtTip.Text = "└├";</p><p&g
109、t;<b> }</b></p><p> ?。?)管理分類頁面(ClassManage.aspx)</p><p> 管理分類。管理員可以對分類進(jìn)行修改,刪除等操作。</p><p> 管理分類頁面名為:ClassManage.aspx, 管理分類頁面界面如圖5.7所示:</p><p> 圖5.7管理分類頁面
110、</p><p><b> 主要代碼如下:</b></p><p> userid = Convert.ToInt32(Session["id"].ToString()); </p><p> DataTable dtrole1 = new DataTable(); </p><
111、p> //以下代碼完成了datatable的構(gòu)架,但是里面是沒有任何數(shù)據(jù)的</p><p> DataTable dtrole2 = new DataTable("tb_class");</p><p> DataColumn dc1 = dtrole2.Columns.Add("right_code", typeof(string));
112、</p><p> DataColumn dc2 = dtrole2.Columns.Add("right_parent_code", typeof(string));</p><p> DataColumn dc3 = dtrole2.Columns.Add("right_type", typeof(string));</p>&
113、lt;p> DataColumn dc4 = dtrole2.Columns.Add("right_text", typeof(string)); </p><p> DataColumn dc5 = dtrole2.Columns.Add("right_url", typeof(string));</p><p> Data
114、Column dc6 = dtrole2.Columns.Add("right_url_ht", typeof(string));</p><p> DataColumn dc7 = dtrole2.Columns.Add("right_tip", typeof(string));</p><p> dtrole1 = rolemanage.Fi
115、ndRoleByUserId("sys_role", userid).Tables[0];</p><p> string s = dtrole1.Rows[0]["role_desc"].ToString();</p><p> string[] ss = s.Split('|'); string sql = "&qu
116、ot;;</p><p> for (int i = 0; i < ss.Length - 1; i++)</p><p> {sql = "select * from sys_right where right_code='" + ss[i] + "'and right_recyle='1'";</p
117、><p> dtrole1 = access.GreatDs(sql).Tables[0];</p><p> string right_code = dtrole1.Rows[0]["right_code"].ToString();</p><p> string right_parent_code = dtrole1.Rows[0][&qu
118、ot;right_parent_code"].ToString();</p><p> string right_type = dtrole1.Rows[0]["right_type"].ToString();</p><p> string right_text = dtrole1.Rows[0]["right_text"].ToSt
119、ring();</p><p> string right_url = dtrole1.Rows[0]["right_url"].ToString();</p><p> string right_url_ht = dtrole1.Rows[0]["right_url_ht"].ToString();</p><p>
120、string right_tip = dtrole1.Rows[0]["right_tip"].ToString();</p><p> DataRow row = dtrole2.NewRow();</p><p> row["right_code"] = right_code;</p><p> row["
121、right_parent_code"] = right_parent_code;</p><p> row["right_type"] = right_type;</p><p> row["right_text"] = right_text;</p><p> row["right_url"
122、;] = right_url;</p><p> row["right_url_ht"] = right_url_ht;</p><p> row["right_tip"] = right_tip;</p><p> dtrole2.Rows.Add(row); }</p><p> DataS
123、et ds = new DataSet();</p><p> ds.Tables.Add(dtrole2);</p><p> this.DropDownList1.DataSource = ds.Tables[0].DefaultView;</p><p> this.DropDownList1.DataTextField = "right_te
124、xt";</p><p> this.DropDownList1.DataValueField = "right_code";</p><p> this.DropDownList1.DataBind();</p><p> ?。?)欄目內(nèi)容管理頁面(ContentManage.aspx)</p><p>
125、 欄目內(nèi)容管理。管理員可以對欄目對應(yīng)的內(nèi)容進(jìn)行管理,還有回收站功能。在管理頁面刪除的內(nèi)容可以在回收站里找到并可以對其還原和徹底刪除。</p><p> 欄目內(nèi)容管理頁面名為: ContentManage.aspx, 欄目內(nèi)容管理頁面如圖5.8所示:</p><p> 圖5.9欄目內(nèi)容管理頁面</p><p><b> 主要代碼如下:</b>
126、;</p><p> #region 依據(jù)--分類編號--綁定新聞中心</p><p> public void BindTogwNews(string parentcode)</p><p><b> {</b></p><p><b> //管理列表</b></p><
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---校園網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)
- 校園網(wǎng)建設(shè)畢業(yè)設(shè)計(jì)
- 校園網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)校園網(wǎng)絡(luò)購物網(wǎng)站設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--校園網(wǎng)設(shè)計(jì)與建設(shè)
- 校園網(wǎng)站設(shè)計(jì)畢業(yè)論文
- 校園網(wǎng)站設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文-校園網(wǎng)站設(shè)計(jì)
- 校園網(wǎng)設(shè)計(jì)與建設(shè)畢業(yè)設(shè)計(jì)論文
- 校園網(wǎng)站建設(shè)方案書
- 校園網(wǎng)站系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 校園網(wǎng)站建設(shè)方案書
- 校園網(wǎng)畢業(yè)設(shè)計(jì)
- 校園網(wǎng)站畢業(yè)論文
- 校園網(wǎng)畢業(yè)設(shè)計(jì)
- 校園網(wǎng)畢業(yè)設(shè)計(jì)---校園網(wǎng)絡(luò)設(shè)計(jì)方案
- 校園網(wǎng)站畢業(yè)論文
- 畢業(yè)設(shè)計(jì)---校園網(wǎng)設(shè)計(jì)
- 計(jì)算機(jī)畢業(yè)論文---校園網(wǎng)站建設(shè)
- 校園網(wǎng)站建設(shè)-職業(yè)學(xué)院畢業(yè)論文
評論
0/150
提交評論