寵物網(wǎng)站畢業(yè)論文_第1頁
已閱讀1頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p><b>  一、引言2</b></p><p><b>  二 、需求分析3</b></p><p>  (二)可行性分析3</p><p> ?。ㄈ┕δ苄枨蠓治?</p><p> 

2、 (四)開發(fā)環(huán)境需求5</p><p><b>  三、系統(tǒng)設(shè)計5</b></p><p> ?。ㄒ唬┫到y(tǒng)功能模塊圖5</p><p> ?。ǘ┫到y(tǒng)活動圖7</p><p> ?。ㄈ┫到y(tǒng)用例圖8</p><p><b>  四、數(shù)據(jù)庫設(shè)計9</b></p

3、><p> ?。ㄒ唬〦-R圖模型9</p><p> ?。ǘ?shù)據(jù)庫模型圖10</p><p>  五、系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)11</p><p>  (一)數(shù)據(jù)庫表設(shè)計11</p><p> ?。ǘ┣芭_主頁面的搭建14</p><p> ?。ㄈ┖笈_的主框架的搭建15</p>

4、<p> ?。ㄋ模┖笈_的主要基本功能與實現(xiàn)15</p><p><b>  六、系統(tǒng)測試27</b></p><p><b>  七、小結(jié)28</b></p><p><b>  八、參考文獻(xiàn)28</b></p><p>  摘要:在Internet飛速發(fā)

5、展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們學(xué)習(xí)、工作、生活等各個方面發(fā)揮著重要的作用。因此網(wǎng)站建設(shè)在Internet應(yīng)用上的地位顯而易見,它已成為政府、企事業(yè)單位信息化建設(shè)中的重要組成部分,從而倍受人們的重視。</p><p>  本文詳細(xì)介紹了寵物網(wǎng)站的功能和結(jié)構(gòu),并論證了網(wǎng)站的設(shè)計方案,簡要介紹了使用的開發(fā)工具M(jìn)icrosoft Visual Studio 2008以及涉及到的等相關(guān)

6、技術(shù),并以在線文章發(fā)布子系統(tǒng)開發(fā)的順序詳細(xì)介紹了系統(tǒng)分析,系統(tǒng)設(shè)計,系統(tǒng)實施的開發(fā)過程, 然后,展示了子系統(tǒng)所實現(xiàn)的功能及部分界面在介紹某些關(guān)鍵技術(shù)的同時,還給出了關(guān)鍵源程序代碼。最后對本系統(tǒng)的不足和本人在開發(fā)中的認(rèn)識和感想進(jìn)行了總結(jié)。</p><p>  關(guān)鍵詞:互聯(lián)網(wǎng); 數(shù)據(jù)庫; 寵物網(wǎng)站</p><p><b>  一、引言</b></p><

7、;p>  某寵物公司自創(chuàng)始以來不斷的發(fā)展壯大,業(yè)務(wù)也越來越繁忙,雇傭數(shù)量較多的工作人員同時也難以避免客戶在購買寵物時造成寵物翻閱損耗等一系列費(fèi)用,當(dāng)今網(wǎng)絡(luò)所顯現(xiàn)的超常信息量、無時空局限、傳遞快捷、操作靈活等優(yōu)點吸引著越來越多網(wǎng)民,同時隨著經(jīng)濟(jì)的發(fā)展,人民生活節(jié)奏也越來越快,所以網(wǎng)上購物吸引了越來越多的人。寵物網(wǎng)正是為了滿足這種需求而研發(fā)的中小型電子商務(wù)系統(tǒng) 。</p><p>  某寵物網(wǎng)系統(tǒng)是基于B/S模

8、式的小型電子商務(wù)系統(tǒng),能夠滿足中小型寵物商店的網(wǎng)上銷售寵物用品的需要。搭建寵物網(wǎng)極為簡單只需要一臺PC機(jī),一根網(wǎng)線,即可進(jìn)行網(wǎng)上交易。寵物網(wǎng)基本上滿足了中小型寵物商店的網(wǎng)上銷售需求,其主要功能包括寵物展示、寵物用品展示、購物車、收銀臺、會員管理、訂單查詢、新聞瀏覽、寵物護(hù)養(yǎng)常識瀏覽、寵物管理、用戶管理、訂單管理。寵物展示主要實現(xiàn)寵物的重點推薦、明星寵物、寵物分類查詢、寵物用品銷售排行榜等功能;購物車功能給每個用戶建立了一個相對應(yīng)的唯一存

9、放選中寵物籍存放的空間;收銀臺提供了客戶付賬的功能,當(dāng)顧客決定購買購物車?yán)锏膶櫸锛畷r,向收銀臺提交訂單;會員管理為每一位注冊用戶提供了注冊、登陸;后臺的寵物管理是為管理員提供修改、添加刪除寵物信息的功能;用戶管理實現(xiàn)的功能有查看用戶信息、消費(fèi)總額;訂單管理主要負(fù)責(zé)查看客戶的發(fā)貨執(zhí)行情況;新聞管理方便管理員向首頁新聞頁面里添加公司新聞;護(hù)養(yǎng)常識是為了方便會員及大眾更好的飼養(yǎng)寵物、相應(yīng)的減少寵物不必要的傷害等。某寵物網(wǎng)的設(shè)計充分考慮了用戶的

10、視覺感受,努力做到界面簡單明了,功能相對完善。</p><p>  后臺開發(fā)充分考慮了使用軟件的用戶可能對計算機(jī)軟件并不是很了解,所以在設(shè)計的過程中添加了許多必要的提示和說明??傊硨櫸锞W(wǎng)將以.Net技術(shù)為基礎(chǔ),實現(xiàn)寵物信息的發(fā)布、購物、用戶管理、寵物后臺管理等一系列的功能,力爭成為廣大客戶帶來更多的便利,為某寵物公司帶來更高的銷售額。</p><p><b>  二 、需求分析

11、</b></p><p><b>  (一)項目背景</b></p><p>  寵物正在成為不少家庭里的新成員。隨著養(yǎng)寵物的家庭不斷增多,寵物經(jīng)濟(jì)也越來越受人關(guān)注。 目前從養(yǎng)寵物的數(shù)量和消費(fèi)能力上看,北京、上海、廣州、重慶和武漢已經(jīng)成為我國五大“寵物城市”,在這些城市。而天津、南京、杭州、深圳、成都等城市,寵物普及程度也相當(dāng)高。不少業(yè)內(nèi)人士表示,隨

12、著日前頒布的《寵物條例》中免去每年寵物年檢費(fèi)用的政策出臺后,可能會有更多人加入養(yǎng)寵物的行列,中國寵物市場的潛力仍待挖掘。 如此大的市場自然吸引了眾商家的眼球,圍繞“寵物賺錢”(指寵物交易本身)和“賺寵物的錢”這兩個主題,市場可提供的項目越來越多,為寵物衣食住行、生老病死支出的費(fèi)用也在逐年增加,個別已經(jīng)面臨服務(wù)升級的項目收費(fèi)更是高得驚人。由于飼養(yǎng)寵物是一個循環(huán)消費(fèi)的過程,消費(fèi)者需要不停地支出,因此寵物產(chǎn)業(yè)成為投資者非??粗械臒狳c行

13、業(yè)。</p><p>  有關(guān)專家表示,我國目前至少有寵物1億只(條),圍繞寵物發(fā)生的消費(fèi)至少在150億元以上。同時,“寵物熱”還帶動了寵物經(jīng)濟(jì),圍繞寵物服務(wù)和寵物用品大做文章的人成倍增加,從寵物食品、寵物醫(yī)療,到寵物美容,甚至還出現(xiàn)了寵物婚介、殯葬、寄養(yǎng)、寵物SPA、寵物旅游團(tuán)等新興服務(wù)。然而,由于行業(yè)缺乏監(jiān)管和規(guī)范,“暴利”、欺詐現(xiàn)象嚴(yán)重,給行業(yè)發(fā)展蒙據(jù)了解,在寵物消費(fèi)中,食品占據(jù)最大份額,其次是醫(yī)療和寵物用

14、品,許多投資者甚至認(rèn)定生產(chǎn)和經(jīng)營寵物用品只賺不賠,紛紛搶食。寵物行業(yè)除了收費(fèi)充滿暴利外,由于越來越多的投資者加入到快速增長的寵物市場,又缺乏有效的監(jiān)管和規(guī)范,使整個市場陷入無序混亂的狀態(tài)。</p><p><b> ?。ǘ┛尚行苑治?lt;/b></p><p><b>  1.技術(shù)的可行性</b></p><p>  某寵物

15、網(wǎng)系統(tǒng)采用了當(dāng)前的主流計算結(jié)構(gòu)—B/S模式進(jìn)行開發(fā),前臺開發(fā)工具選用Microsoft Visual Studio 2008。它是一種可視化的、面向?qū)ο蟮腤indows開發(fā)語言,具有易用、通用和開發(fā)效率高的特點。后臺的數(shù)據(jù)庫開發(fā)工具選用了Microsoft SQL Server 2005,它能夠處理大量數(shù)據(jù),同時保持?jǐn)?shù)據(jù)完整性并提供許多高級管理和數(shù)據(jù)分配功能,它又在數(shù)據(jù)庫平臺的安全模塊方面做了重要的增強(qiáng),在加強(qiáng)數(shù)據(jù)安全性方面提供了更多精

16、確、靈活的控制方法,并定義了幫助建立支持安全計算的必要步驟,同時幫助部署和維護(hù)一個安全環(huán)境。這兩種開發(fā)工具功能強(qiáng)大,有較好的接口,作為本系統(tǒng)開發(fā)工具是可行的。</p><p><b>  2. 經(jīng)濟(jì)可行性</b></p><p>  隨著計算機(jī)技術(shù)的飛速發(fā)展,計算機(jī)在企業(yè)管理中應(yīng)用的普及,實現(xiàn)了企業(yè)業(yè)務(wù)管理的高效化、系統(tǒng)化、規(guī)范化、自動化。同樣隨著寵物業(yè)的崛起,某寵物

17、公司已經(jīng)成長為一個跨地區(qū)的大公司,并且公司的業(yè)務(wù)已遍布全國。而傳統(tǒng)的經(jīng)營模式已無法適合當(dāng)今的龐大的數(shù)據(jù)處理和精確的運(yùn)算需求。所以一套精美完善的寵物網(wǎng)系統(tǒng)是提高工作效率節(jié)省人力物力財力的有效解決方案。擁有自己的一套特色的寵物網(wǎng)站系統(tǒng)是非常必要的。它可持續(xù)使用并能隨著時代和工作的需求不斷更新,一期投入終身受用,按長期的使用計算,開發(fā)系統(tǒng)的造價平均到每年與傳統(tǒng)式的管理方式的年耗資本相對比,性價比是可行的。開發(fā)這套系統(tǒng)的經(jīng)濟(jì)可行性是很高的。&l

18、t;/p><p><b> ?。ㄈ┕δ苄枨蠓治?lt;/b></p><p>  根據(jù)調(diào)查,寵物網(wǎng)站管理主要包括網(wǎng)站的瀏覽者、會員、網(wǎng)站管理人員三個方面。寵物瀏覽者的需求是查詢該網(wǎng)站的寵物和寵物商品信息,想要購買所需的東西,則需要注冊登錄,成為會員;會員的需求是查詢該網(wǎng)站的寵物和寵物商品以及購買所需物品,當(dāng)然如果密碼丟失還可以找回密碼;網(wǎng)站管理人員可以對員工、會員、寵物及寵物

19、用品進(jìn)行管理。因此我們的網(wǎng)站分為前臺后臺兩個方面進(jìn)行設(shè)計的,前臺主要是產(chǎn)品的展示,供瀏覽者和會員查看和購買商品,而后臺主要是管理員登陸的,管理員要從后臺維護(hù)網(wǎng)站的所有信息,包括會員管理,寵物管理,寵物用品管理,員工管理,訂單管理等等。</p><p>  前臺需要實現(xiàn)的主要功能有:</p><p>  1.寵物及相關(guān)用品信息的瀏覽,明星寵物,熱銷用品的展示及詳細(xì)信息瀏覽。</p>

20、;<p>  2.護(hù)養(yǎng)常識,公司新聞及公司介紹的瀏覽。</p><p>  3.寵物用品的購買包括對購物車信息的修改,訂單信息的填寫及提交。</p><p>  4.會員注冊,登錄,若丟失密碼時找回密碼。</p><p>  后臺系統(tǒng)管理員對數(shù)據(jù)的處理及維護(hù):</p><p><b>  1.系統(tǒng)設(shè)置</b>

21、;</p><p>  對數(shù)據(jù)庫備份與還原,操作日志的查看,管理員信息的查詢,詳細(xì)信息查看,新增管理員,刪除不用的管理員信息,對管理員密碼的修改。</p><p><b>  2.基本資料管理</b></p><p>  員工信息管理,供應(yīng)商信息管理,可以對該項目中進(jìn)行查詢(包括模糊查詢),添加,修改,刪除及導(dǎo)出數(shù)據(jù)等操作</p>

22、<p><b>  3.銷售管理</b></p><p>  今日訂單提醒,能夠及時獲取當(dāng)日的訂單信息,及時的對訂單進(jìn)行發(fā)貨(包括單單發(fā)貨和多單發(fā)貨)。寵物銷售管理,記錄寵物的銷售情況,對銷售記錄進(jìn)行添加,修改,刪除等操作。寵物用品銷售管理,記錄用品的銷售情況,對其銷售記錄進(jìn)行添加,修改,刪除等操作。當(dāng)對訂單發(fā)貨或者是添加銷售記錄是均會對庫存進(jìn)行判斷。只有在庫存量大于訂單訂購量或

23、銷售量時才能操作成功。</p><p><b>  4.庫存信息管理</b></p><p>  寵物基本信息管理,添加新上架的寵物信息,刪除不需要的寵物信息,發(fā)現(xiàn)錯誤信息能進(jìn)行修改,也可以導(dǎo)出寵物信息。寵物用品信息管理,可以對新上架的用品進(jìn)行及時添加,修改數(shù)據(jù),對已過時,或長久不用的用品信息進(jìn)行刪除,也可以導(dǎo)出寵物用品信息。</p><p>

24、<b>  5.咨詢中心模塊、</b></p><p>  包括公司新聞信息維護(hù)和護(hù)養(yǎng)常識信息維護(hù)。包括公司新聞信息維護(hù)和護(hù)養(yǎng)常識信息維護(hù)。員工可以通過此模塊更清晰的了解公司的最新動態(tài),用戶則可以看到很多最新上市的商品,以及一些關(guān)于寵物的趣聞和養(yǎng)護(hù)知識。</p><p> ?。ㄋ模╅_發(fā)環(huán)境軟件需求</p><p>  操作系統(tǒng):操作系統(tǒng):Win

25、dows XP/ Windows 2003。</p><p>  數(shù)據(jù)庫:SQL Server 2005。</p><p>  開發(fā)工具:Microsoft Visual Studio 2008。</p><p>  輔助開發(fā)工具:Photoshop CS2、Flash8。</p><p><b>  三、系統(tǒng)設(shè)計</b>

26、;</p><p>  (一)系統(tǒng)功能模塊圖</p><p>  根據(jù)上述系統(tǒng)功能的需求分析,按照結(jié)構(gòu)化程序設(shè)計的需求,得到如下的系統(tǒng)模塊圖。</p><p>  1.前臺主要分為會員管理,商品展示,購買流程,新聞瀏覽四大功能模塊。如圖3-1所示。</p><p>  其中會員管理模塊包括了會員登錄、會員注冊、會員找回密碼、注銷用戶等功能。商

27、品展示主要是對寵物及寵物用品進(jìn)行展示,包括熱銷寵物,促銷商品等的分類展示及詳細(xì)介紹。購買流程主要針對會員購買商品時所進(jìn)行的一系列的操作。包括寵物用品的詳細(xì)介紹及選購,購物車管理,填寫訂單并提交。新聞瀏覽模塊主要介紹公司新聞,公司簡介及寵物的護(hù)養(yǎng)常識。</p><p>  2.后臺主要分為基本信息管理,銷售管理,庫存管理個系統(tǒng)管理四大功能模塊,如圖3-1所示。</p><p>  其中基本信

28、息管理模塊主要包括會員的基本信息,供應(yīng)商信息管理,公司新聞的發(fā)布,護(hù)養(yǎng)常識的管理等模塊。銷售管理模塊主要包括對訂單的管理,寵物銷售記錄的管理和寵物用品銷售記錄的管理。庫存管理模塊主要包括寵物信息的管理和寵物用品信息的管理。系統(tǒng)管理模塊主要有對數(shù)據(jù)庫的備份與還原,操作日志的記錄。</p><p><b>  圖3-1功能模塊圖</b></p><p><b>

29、 ?。ǘ┫到y(tǒng)活動圖</b></p><p>  1.管理員活動圖,如圖3-2所示。</p><p>  圖3-2管理員活動圖</p><p>  2.會員活動圖,如圖3-3所示。</p><p><b>  圖3-3會員活動圖</b></p><p>  3.一般用戶活動圖,如圖3-

30、4所示。</p><p><b>  圖3-4會員活動圖</b></p><p><b> ?。ㄈ┫到y(tǒng)用例圖</b></p><p>  1.管理員用例圖,如圖3-5所示</p><p>  管理員用例圖指出管理員進(jìn)入系統(tǒng)后,可進(jìn)行的操作的信息。</p><p>  圖3-

31、5管理員用例圖</p><p>  2.會員用例圖,如圖3-6所示</p><p><b>  圖3-6會員用例圖</b></p><p><b>  四、數(shù)據(jù)庫設(shè)計</b></p><p>  數(shù)據(jù)庫的設(shè)計經(jīng)過我們的分析,將系統(tǒng)中涉及的功能表現(xiàn)出來,其中表的建立尤為重要。</p>&

32、lt;p>  數(shù)據(jù)庫表的建立不僅是字段的建立,表與表之間的關(guān)系也不可或缺。主鍵、外鍵的關(guān)系需要謹(jǐn)慎建立。創(chuàng)建外鍵關(guān)系即是將各表與表之間聯(lián)系起來。表與表之間一旦脫離了外鍵之間的關(guān)系而獨(dú)立,那么系統(tǒng)之間的功能也將難以完成。</p><p><b>  (一)E-R圖模型</b></p><p>  E-R圖簡潔的反映出整個流程的概況和系統(tǒng)中所有實體之間相對應(yīng)的關(guān)系,

33、綜合了管理員、員工、會員、一般用戶在整個系統(tǒng)中的聯(lián)系和各自的安排把系統(tǒng)的內(nèi)部聯(lián)系明了化。</p><p>  圖4-1 E-R模型圖</p><p><b>  (二)數(shù)據(jù)庫模型圖</b></p><p>  圖中顯示了數(shù)據(jù)庫中有哪些表,各張表在數(shù)據(jù)庫中的聯(lián)系,即他們之間的主外鍵關(guān)系。</p><p>  圖4-2 數(shù)據(jù)

34、庫模型圖</p><p>  五、系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)</p><p><b> ?。ㄒ唬?shù)據(jù)庫表設(shè)計</b></p><p>  經(jīng)過分析,系統(tǒng)中建立了數(shù)據(jù)庫PetData,如圖5-1所示。</p><p>  圖5-1 PetData數(shù)據(jù)庫</p><p>  下面是幾張主要的表:</p&

35、gt;<p>  1. 會員表(CustomerInfo):</p><p>  2. 寵物用品信息表(PetGoods):</p><p>  3. 寵物信息表(PetInfo):</p><p>  4. 訂單表(OrderInfo):</p><p>  5. 商品銷售表(GoodsSell):</p>&l

36、t;p>  6. 寵物銷售記錄表(PetSell):</p><p> ?。ǘ┣芭_主頁面的搭建</p><p>  前臺界面均以黃色為主色調(diào),色彩鮮明,主頁面主要展示部分熱銷寵物和正在促銷的寵物用品。同時還具有搜索和會員登錄的功能。在個性化設(shè)計方面又加了一個小日歷小巧玲瓏。</p><p>  頁面的搭建采用div/css模式并應(yīng)用了JavaScript特效

37、。同時還靈活應(yīng)用了母版和自定義控件。使頁面搭建更方便,也使得頁面統(tǒng)一美觀(如圖5-2所示)。</p><p>  圖5-2 前臺主頁面</p><p> ?。ㄈ┖笈_的主框架的搭建</p><p>  色彩采用藍(lán)色為主色調(diào),并以淡藍(lán)色為主,整體給人以活潑,輕松,舒適的感覺(如圖5-3所示)。頁面的搭建采用div/css和frameset模式,并且應(yīng)用了JavaScr

38、ipt特效。</p><p>  左側(cè)導(dǎo)航,各個功能模塊一目了然。頭部首頁可以鏈接到前臺的某寵物網(wǎng)站首頁,并有前進(jìn),后退及刷新等功能。還特意加了一個日期特效,能夠清楚知道具體日期。</p><p>  圖5-3 后臺主框架頁面</p><p> ?。ㄋ模┖笈_的主要基本功能與實現(xiàn)</p><p><b>  1.管理員登錄</b

39、></p><p>  頁面色彩與主頁面一樣同樣以談藍(lán)色為主色調(diào),如圖5-4所示。</p><p><b>  圖5-4 登錄界面</b></p><p>  該登錄界面還具有記住密碼的功能,在UI層編寫一個BasePage類用來存放公用的代碼,從而達(dá)到代碼的復(fù)用性。其主要代碼如下所示:</p><p>  pub

40、lic class BasePage : System.Web.UI.Page</p><p><b>  {</b></p><p>  Public void DoLogin(string paramUserName, string paramPasswor, bool paramPersistCookie)</p><p><b&g

41、t;  {</b></p><p>  StaffManager myBUStaff = new StaffManager();</p><p><b>  try</b></p><p><b>  {</b></p><p>  myBUStaff.DoLogin(paramUser

42、Name, paramPasswor);</p><p><b>  }</b></p><p><b>  catch</b></p><p><b>  {</b></p><p><b>  throw;</b></p><p&g

43、t;<b>  }</b></p><p>  if (myBUStaff.ID.Length > 0)</p><p><b>  { </b></p><p>  string UserKey = Guid.NewGuid().ToString();</p><p>  if (Comm

44、onMethod.CurrentUser.ContainsKey(myBUStaff.ID))</p><p><b>  {</b></p><p>  CommonMethod.CurrentUser[myBUStaff.ID] = UserKey;</p><p>  Session["UserKey"] = User

45、Key;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  CommonMethod.CurrentUser.Add(myBUStaff.ID, UserKey);</p>

46、;<p>  Session["UserKey"] = UserKey;</p><p><b>  }</b></p><p>  this.Themes = BUSystemInfo.getThemes(myBUStaff.Theme); </p><p>  this.SetSession(myBUSta

47、ff.ID, myBUStaff.UserName, myBUStaff.FullName, myBUStaff.OperatorType, "");</p><p>  System.Web.Security.FormsAuthentication.SetAuthCookie(myBUStaff.UserName, false);</p><p>  this.Get

48、SystemInfo();</p><p>  if (paramPersistCookie)</p><p><b>  {</b></p><p>  this.SaveCookie(paramUserName, paramPasswor);</p><p><b>  }</b></p&

49、gt;<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  this.ClearCookie();</p><p>  FormsAuthentication.SignOut();

50、</p><p>  Session.Abandon();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  protected void btnLogin_Cli

51、ck(object sender, EventArgs e)</p><p><b>  {</b></p><p>  string userName = this.txtUserName.Text.Trim();</p><p>  string passWord = this.txtPassWord.Text.Trim();</p&

52、gt;<p>  this.LoginSystem(userName, passWord);</p><p><b>  }</b></p><p>  protected void LoginSystem(string paramUserName, string paramPassWord)</p><p><b> 

53、 {</b></p><p><b>  try</b></p><p><b>  {</b></p><p>  base.DoLogin(paramUserName, paramPassWord, false);</p><p>  if (Request["Action

54、"] != null && Request["Key"] != null)</p><p><b>  {</b></p><p>  string Word = string.Empty;</p><p>  string UserInfo = Session["OperatorID&q

55、uot;].ToString() + "+" + paramPassWord;</p><p>  string key = Request["Key"].ToString();</p><p>  LindonSoft.SubstrateLayer.DALayer.DataCrypto myDataCryto = new LindonSoft.Su

56、bstrateLayer.DALayer.DataCrypto();</p><p>  myDataCryto.Key = key;</p><p>  Word = myDataCryto.Decrypto(UserInfo);</p><p>  Response.Redirect(Request["Action"].ToString()

57、+ "?Action=" + Word); </p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Response.Redire

58、ct(this.GetBaseUrl() + "Manager/Main.aspx", false);</p><p><b>  }</b></p><p><b>  }</b></p><p>  catch (Exception myException)</p><p>

59、<b>  {</b></p><p>  if (myException.Message == "密碼錯誤")</p><p><b>  {</b></p><p>  this.txtPassWord.Focus();</p><p>  this.lblError.Tex

60、t = myException.Message;</p><p>  this.lblError.Visible = true;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

61、<p>  this.txtUserName.Text = string.Empty;</p><p>  this.txtPassWord.Text = string.Empty;</p><p>  this.txtUserName.Focus();</p><p>  this.lblError.Text = myException.Message;

62、</p><p>  this.lblError.Visible = true;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p> ?。?)數(shù)據(jù)庫備份與還原</

63、p><p>  備份數(shù)據(jù)庫,可以選擇數(shù)據(jù)庫的名稱及備份文件的保存路徑,如圖5-5所示。</p><p>  圖5-5 備份數(shù)據(jù)庫</p><p>  選擇好數(shù)據(jù)庫及文件保存路徑后點擊數(shù)據(jù)備份按鈕即可,只需要UI就可以實現(xiàn)數(shù)據(jù)的連接、加載。主要代碼如下:</p><p>  protected void btnConfirm_Click(objec

64、t sender, EventArgs e)</p><p><b>  {</b></p><p>  string SqlStr1 = "Server=.;database=" + this.DropDownList1.SelectedValue + ";Uid=sa;Pwd=123";</p><p&g

65、t;  string SqlStr2 = " backup database " + this.DropDownList1.SelectedValue + " to disk='" + this.TextBox1.Text.Trim() + ".bak'";</p><p>  SqlConnection con = new SqlCon

66、nection(SqlStr1);</p><p>  con.Open();</p><p><b>  try</b></p><p><b>  {</b></p><p>  if (File.Exists(this.TextBox1.Text.Trim()))</p><

67、;p><b>  {</b></p><p>  Response.Write("<script language=javascript>alert('此文件已存在,請從新輸入!');</script>");</p><p><b>  return;</b></p>

68、<p><b>  }</b></p><p>  SqlCommand com = new SqlCommand(SqlStr2, con);</p><p>  com.ExecuteNonQuery();</p><p>  Response.Write("<script language=javascript

69、>alert('備份數(shù)據(jù)成功!');</script>");</p><p><b>  }</b></p><p>  catch (Exception error)</p><p><b>  {</b></p><p>  Response.Writ

70、e(error.Message);</p><p>  Response.Write("<script language=javascript>alert('備份數(shù)據(jù)失??!')</script>");</p><p><b>  }</b></p><p><b>  fin

71、ally</b></p><p><b>  {</b></p><p>  con.Close();</p><p><b>  }</b></p><p><b>  }</b></p><p>  還原數(shù)據(jù)庫,可以選擇需要還原的數(shù)據(jù)庫以

72、及還原文件的存放路徑,如圖5-6所示。</p><p>  圖5-6 還原數(shù)據(jù)庫</p><p><b>  主要代碼如下:</b></p><p>  只需要UI就可以實現(xiàn)數(shù)據(jù)的連接、加載</p><p>  protected void btnConfirm_Click(object sender, EventArg

73、s e)</p><p><b>  {</b></p><p>  string path = this.FileUpload1.PostedFile.FileName; //獲得備份路徑及數(shù)據(jù)庫名稱</p><p>  string dbname = this.DropDownList1.SelectedValue;</p>

74、<p>  string SqlStr1 = "Server=.;database='" + this.DropDownList1.SelectedValue + "';Uid=sa;Pwd=123";</p><p>  string SqlStr2 = "use master restore database " + dbn

75、ame + " from disk='" + path + "'";</p><p>  SqlConnection con = new SqlConnection(SqlStr1);</p><p>  con.Open();</p><p><b>  try</b></p>

76、;<p><b>  {</b></p><p>  SqlCommand com = new SqlCommand(SqlStr2, con);</p><p>  com.ExecuteNonQuery();</p><p>  Response.Write("<script language=javascri

77、pt>alert('還原數(shù)據(jù)成功!');</script>");</p><p><b>  }</b></p><p>  catch (Exception error)</p><p><b>  {</b></p><p>  Response.Wr

78、ite(error.Message);</p><p>  Response.Write("<script language=javascript>alert('還原數(shù)據(jù)失敗!')</script>");</p><p><b>  }</b></p><p><b>  f

79、inally</b></p><p><b>  {</b></p><p>  con.Close();</p><p><b>  }</b></p><p><b>  }</b></p><p>  (3)寵物信息的維護(hù)</p&

80、gt;<p>  包括對寵物信息的查詢,模糊查詢,添加,修改,刪除,批量刪除,導(dǎo)出數(shù)據(jù)等操作。還有針對頁面顯示而做的一些功能,包括頁面顯示的行數(shù),跳轉(zhuǎn)頁面等。具體實例圖,如圖5-7所示。</p><p>  5-7 寵物信息查詢界面</p><p>  查詢時如在寵物編號和名字中均為空白,此時查詢的是全部的數(shù)據(jù),如果輸入內(nèi)容就是按條件查詢。具體的實現(xiàn)代碼如下:</p&g

81、t;<p>  在UI層獲取兩個TextBox里面的值(若無值即為空),傳到BU層。將查詢到的內(nèi)容加載到gridview里面。</p><p>  protected void btnSearth_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  thi

82、s.myQueryData = new PetInfoQueryData(this.txtPetID.Text.Trim(),this.txtPetName.Text.Trim());</p><p>  this.BindGrid(1, 10);</p><p><b>  }</b></p><p>  public void BindGr

83、id(int paramPageIndex, int paramPageSize)</p><p><b>  {</b></p><p>  PetInfoManager myPetInfo = new PetInfoManager();</p><p>  DataSet myDs = myPetInfo.Search(null, this

84、.myQueryData);</p><p>  this.Master.BindData(this.grdvMessage, myDs.Tables[0].DefaultView);</p><p><b>  }</b></p><p>  在BU層打開數(shù)據(jù)庫連接并執(zhí)行sql語句,將執(zhí)行結(jié)果放入到BaseDBCon中,并返回。主要代碼如下:

85、</p><p>  public DataSet Search(BaseDBCon myBaseDBCon, PetInfoQuery QueryData)</p><p><b>  { </b></p><p>  string strQuery = @"SELECT "</p><p>  +

86、 PetInfo.ID_FULL + ","</p><p><b>  ……</b></p><p>  + PetInfo .Deta_introduce_FULL </p><p>  + " FROM " + PetInfo.TABLENAME + " WHERE 1 = 1 "

87、;;</p><p>  bool DbCloce = myBaseDBCon == null;</p><p>  Hashtable myParam = new Hashtable();</p><p>  if (QueryData.PetID.Length > 0)</p><p><b>  {</b>&

88、lt;/p><p>  strQuery += " AND " +PetInfo.PetID_FULL + " LIKE @PetID ";</p><p>  myParam.Add("@PetID", "%" + QueryData.PetID.Replace(" ", "%&q

89、uot;) + "%");</p><p><b>  }</b></p><p><b>  ……</b></p><p>  DataSet myDs = new DataSet();</p><p><b>  try</b></p>&

90、lt;p><b>  {</b></p><p>  myBaseDBCon = BaseDBCon.Instance(myBaseDBCon);</p><p>  myBaseDBCon.Fill(strQuery, myDs, PetInfo.TABLENAME, myParam);</p><p>  myBaseDBCon.Co

91、mmitTransaction(DbCloce);</p><p><b>  }</b></p><p>  catch (Exception myEx)</p><p><b>  {</b></p><p>  myBaseDBCon.RollBackTransaction(DbCloce);

92、</p><p>  throw new Exception(myEx.Message + "\r\n SQL:" + strQuery);</p><p><b>  }</b></p><p><b>  finally</b></p><p><b>  {<

93、;/b></p><p>  myBaseDBCon.Close(DbCloce);</p><p><b>  }</b></p><p>  return myDs;</p><p><b>  }</b></p><p>  當(dāng)數(shù)據(jù)過多存在無用數(shù)據(jù)時可對數(shù)據(jù)進(jìn)行刪

94、除,先在gridview的第一列的CheckBox中選中要刪除的相,然后點擊刪除按鈕。</p><p><b>  主要代碼如下:</b></p><p>  protected void btnDel_Click(object sender, EventArgs e)</p><p><b>  {</b></p&

95、gt;<p>  ArrayList Ids = base.GetSelectedIds(this.grdvMessage);</p><p>  PetInfoManager myPetInfo = new PetInfoManager();</p><p>  myPetInfo.BatchDel(null, Ids);</p><p>  thi

96、s.BindGrid(1, 10);</p><p><b>  }</b></p><p>  當(dāng)需要添加寵物信息時,點擊右下角的添加按鈕,會轉(zhuǎn)到寵物信息操作頁面,如圖5-8所示。</p><p>  錄入寵物信息包括寵物編號,全稱,別名,類型,原產(chǎn)地,庫存量,照片,詳細(xì)介紹等。寵物編號均由該寵物英文名字的前三個字母加數(shù)字組成。</p&

97、gt;<p>  圖5-8 寵物信息操作頁面</p><p>  在文本框中輸入信息后,點擊添加數(shù)據(jù)首先添加到GridView的控件中,你可以進(jìn)行數(shù)據(jù)的核對,核對無誤后點擊保存即可保存到數(shù)據(jù)庫中,并且返回到寵物信息頁面,即可看到剛剛添加的數(shù)據(jù)。 </p><p><b>  主要代碼如下:</b></p><p><b>

98、;  UI層:</b></p><p>  PetInfoManager myPetInfo= new PetInfoManager();</p><p>  myPetInfo = this.GetPageValue(myPetInfo);</p><p>  int returnValue = myPetInfo.InsertPetInfo(myPe

99、tInfo);</p><p>  if (returnValue > 0)</p><p><b>  {</b></p><p>  this.Clear();</p><p>  this.Alert("添加成功", "Saved");base.JsWrite(&quo

100、t;window.location.href='UIPetInfoManager.aspx?IsPageBack=1';window.close();", "Close");</p><p><b>  }</b></p><p><b>  BU層:</b></p><p>

101、  public int InsertPetInfo(PetInfoData myPetInfoData)</p><p><b>  {</b></p><p>  int returnValue = 0;</p><p>  string sqlQuery = @" INSERT INTO [PetInfo]([PetID],[P

102、etName],[OtherName],[Height],[Type],[Life] ,[Variety],[PetFunction],[Source_area],[PetSupplierID],[Stock],[PetImage] ,[Price],[Remark],[Deta_introduce])</p><p>  VALUES ('" + myPetInfoData.PetID + &

103、quot;','" + myPetInfoData.PetName + "','" + myPetInfoData.OtherName + "','" + myPetInfoData.Height + "','" + myPetInfoData.Type + "','"

104、; + myPetInfoData.Life + "','" + myPetInfoData.Variety + "','" + myPetInfoData.PetFunction + "','" + myPetInfoData.Source_area + "','" + myPetInfoDa

105、ta.PetSupplierID + "','" + myPetInfoData.Stock + "','" + myPetInfoData.PetImage + "','" + myPetInfoData.Price + "','

106、;" + myPetInfoData.Remark + "','"</p><p>  returnValue = this.ExecuteNonQuery(sqlQuery);</p><p>  return returnValue;</p><p><b>  }</b></p>

107、<p><b>  }</b></p><p>  如果寵物信息有錯誤,可以點擊gridview中的修改圖片,進(jìn)入到寵物信息操作頁面(如圖所示),然后對數(shù)據(jù)進(jìn)行修改確定信息修改正確后點擊保存按鈕,修改的數(shù)據(jù)會直接保存到數(shù)據(jù)庫,然后直接返回到寵物信息頁面,數(shù)據(jù)會直接顯示出來。</p><p><b>  主要代碼如下:</b></

108、p><p>  public void SetPageValue(PetInfoManager paramPetInfo) </p><p><b>  {</b></p><p>  this.txtPetID.Text = paramPetInfo.PetID.ToString();</p><p><b> 

109、 ……</b></p><p>  this.Image1.ImageUrl = paramPetInfo.PetImage;</p><p>  if (this.Image1.ImageUrl == "")</p><p><b>  {</b></p><p>  this.Imag

110、e1.ImageUrl = "../Image/暫無圖片.jpg";</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  this.Image1.ImageUrl

111、= paramPetInfo.PetImage;</p><p><b>  }</b></p><p><b>  } </b></p><p>  public PetInfoManager GetPageValue(PetInfoManager paramPetInfo)</p><p>&l

112、t;b>  {</b></p><p>  paramPetInfo.PetID = this.txtPetID.Text;</p><p><b>  ……</b></p><p>  this.Image1.Visible = true;</p><p>  if (this.Image1.Imag

113、eUrl == "")</p><p><b>  {</b></p><p>  this.Image1.ImageUrl = "../Image/暫無圖片.jpg";</p><p><b>  }</b></p><p>  paramPetInfo.P

114、etImage = this.Image1.ImageUrl; </p><p>  return paramPetInfo;</p><p><b>  }</b></p><p>  if(this.ID.Length > 0)</p><p><b>  {</b></p>

115、<p>  myPetInfo.Get(null, this.ID);</p><p><b>  }</b></p><p><b>  try</b></p><p><b>  { </b></p><p>  myPetInfo.Save(null);<

116、;/p><p>  this.Clear();</p><p>  this.Alert("保存成功", "Saved");base.JsWrite("window.location.href='UIPetInfoManager.aspx?IsPageBack=1';window.close();", "Cl

117、ose");</p><p><b>  }</b></p><p>  catch (Exception myException)</p><p><b>  {</b></p><p>  ExceptionManager.Throw(this.OperatorID, "維護(hù)

118、", myException);</p><p>  this.Alert("保存失敗,此次操作無效!", "Error");</p><p><b>  }</b></p><p><b> ?。?)訂單管理</b></p><p>  主要有查詢

119、訂單,對訂單發(fā)貨,刪除不需要的訂單及導(dǎo)出訂單信息等幾個功能,如圖5-9所示。其中訂單的發(fā)貨可以是單一訂單發(fā)貨也可以多單發(fā)貨,當(dāng)選中一條記錄時可以查看該訂單詳細(xì)信息。如果尚未發(fā)貨可以直接對其進(jìn)行發(fā)貨。也可以返回到主頁進(jìn)行多單發(fā)貨。</p><p>  圖5-9 訂單查詢頁面</p><p>  需要單一訂單發(fā)貨時先選中需要發(fā)貨的訂單然后點擊去發(fā)貨,進(jìn)入到訂單詳細(xì)信息界面。如果該訂單已發(fā)貨此時

120、的界面顯示如圖5-10所示,若該訂單未發(fā)貨此時的界面如圖5-11所示。</p><p>  圖5-10 已發(fā)貨訂單頁面</p><p>  已發(fā)貨的訂單只能查看訂單信息,不能進(jìn)行任何操作,以免對同一訂單重復(fù)發(fā)貨。</p><p>  圖5-11 未發(fā)貨訂單頁面</p><p>  未發(fā)貨的訂單要想發(fā)貨可以將是否已發(fā)貨選項改為‘1’,然后點擊確

121、認(rèn)信息并發(fā)貨,頁面會自動跳轉(zhuǎn)到訂單信息頁面。</p><p>  多單發(fā)貨的主要代碼如下:</p><p><b>  UI層:</b></p><p>  protected void btnShip_Click(object sender, EventArgs e)</p><p><b>  {</

122、b></p><p>  int returnValue = 0;</p><p>  OrderInfoManager myOrderInfo = new OrderInfoManager();</p><p>  ArrayList myArrayList = this.GetID();</p><p>  if (myArrayL

123、ist.Count == 0)</p><p><b>  {</b></p><p>  Response.Write("<script>alert('請選擇您要發(fā)貨的訂單')</script>");</p><p><b>  return;</b></

124、p><p><b>  }</b></p><p>  foreach (string paramStr in myArrayList)</p><p><b>  {</b></p><p>  returnValue += myOrderInfo.UpdateOrderInfoTwo(paramSt

125、r);</p><p><b>  }</b></p><p>  if (returnValue == myArrayList.Count)</p><p><b>  {</b></p><p>  UpdateGoodsStock();</p><p>  Respon

126、se.Write("<script>alert('發(fā)貨成功')</script>");</p><p><b>  }</b></p><p>  this.BindGrid(1, 10);</p><p><b>  }</b></p><p

127、><b>  BU層:</b></p><p>  public int UpdateOrderInfoTwo(string paramID)</p><p><b>  {</b></p><p>  string sqlQuery = " update OrderInfo set IsSend='

128、;1' where OrderID='" + paramID + "' ";</p><p>  int returnValue = this.ExecuteNonQuery(sqlQuery);</p><p>  return returnValue;</p><p><b>  }</b&g

129、t;</p><p>  發(fā)貨之后聯(lián)動該商品的庫存量,該功能的主要代碼如下:</p><p><b>  UI層:</b></p><p>  GoodsSellManager myGoodsSell = new GoodsSellManager();</p><p>  private int UpdateGoodsS

130、tock()</p><p><b>  {</b></p><p>  int returnValue = 0;</p><p>  OrderInfoManager myOrderInfo = new OrderInfoManager();</p><p>  ArrayList myArrayList = this

131、.GetID();</p><p>  foreach (string paramStr in myArrayList)</p><p><b>  {</b></p><p>  string paramGoodsName = myOrderInfo.GetGoodsIDTwo(paramStr).Tables[0].Rows[0][0].T

溫馨提示

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

評論

0/150

提交評論