畢業(yè)設(shè)計(論文)仿當(dāng)當(dāng)網(wǎng)網(wǎng)上圖書銷售系統(tǒng)的實現(xiàn)_第1頁
畢業(yè)設(shè)計(論文)仿當(dāng)當(dāng)網(wǎng)網(wǎng)上圖書銷售系統(tǒng)的實現(xiàn)_第2頁
畢業(yè)設(shè)計(論文)仿當(dāng)當(dāng)網(wǎng)網(wǎng)上圖書銷售系統(tǒng)的實現(xiàn)_第3頁
畢業(yè)設(shè)計(論文)仿當(dāng)當(dāng)網(wǎng)網(wǎng)上圖書銷售系統(tǒng)的實現(xiàn)_第4頁
畢業(yè)設(shè)計(論文)仿當(dāng)當(dāng)網(wǎng)網(wǎng)上圖書銷售系統(tǒng)的實現(xiàn)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 仿當(dāng)當(dāng)網(wǎng)網(wǎng)上圖書銷售系統(tǒng)的實現(xiàn)仿當(dāng)當(dāng)網(wǎng)網(wǎng)上圖書銷售系統(tǒng)的實現(xiàn)摘摘 要要隨著 internet 的迅速崛起,網(wǎng)絡(luò)信息化的發(fā)展,在線圖書銷售作為一種典型的 web 電子商務(wù)系統(tǒng)也迅速的發(fā)展并深入人們的日常生活中。更多的人更愿意足不出戶就可以挑選購買自己喜歡的各種書籍,這樣大大縮短了購書的時間,提高了效率。可見,網(wǎng)上圖書銷售系統(tǒng)跨越了時間和空間的限制,給商業(yè)流通領(lǐng)域帶來了不一樣的變革,也給消費者帶來了便捷。本系統(tǒng)采用 b/s 結(jié)構(gòu)進行設(shè)計,是在.net 環(huán)境下使用 visual c#.net 語言開發(fā)的一個功能完善的網(wǎng)上圖書銷售系統(tǒng)。其具有一定的實用性,用戶可以在網(wǎng)上瀏覽圖書信息,查找圖書資料,將

2、感興趣的書籍加入收藏夾,或放入購物車并下訂單購買;同時,管理員也可以對整個系統(tǒng)的信息和數(shù)據(jù)進行管理,可以管理庫存書信息、分類信息、出版社信息、用戶信息和訂單信息。此外,本論文采用的分析方法和設(shè)計過程具有一定的普遍性,可以應(yīng)用到其它系統(tǒng)的開發(fā)設(shè)計當(dāng)中。關(guān)鍵詞關(guān)鍵詞:網(wǎng)上購書系統(tǒng);.net;電子商務(wù);數(shù)據(jù)庫 the design and realization of web bookshop management system based on .netabstractwith the rapid rise of internet, the development of network infor

3、mation technology, web bookshop system as a typical electronic commerce system also develops rapidly and deeps into peoples life. more and more people could be willing to select and buy their favorite books at home, so that is greatly reducing the time of shopping, and improving the efficiency. obvi

4、ously, the web bookshop management system has crossed the constraint of the time and the space, it not only brings a different change to the commercial domain, but also brings convenient to the consumers. the system used b/s structure and developed a well-functioning online book sales system with th

5、e use of visual c#.net language based on .net. also, the system has some practicality, customers can browse the details of books on internet, search information of books, and add the books which they like to the favorites, or put them to the shopping cart and place an order to buy them. at the same

6、time, administrators can manage the entire systems information and data, as the information of inventory, category, publishers, customers and orders. in addition, the analysis method and design process in the thesis have some universality, and can be applied to design other application system.key wo

7、rds: web bookshop system; .net; electronic commerce; database 目目 錄錄論文總頁數(shù):28 頁1引言.11.1課題背景.11.2本課題研究內(nèi)容.11.3本課題研究的意義.12網(wǎng)上圖書銷售系統(tǒng)相關(guān)技術(shù).12.1.net 開發(fā)平臺及 c.net 開發(fā)語言.12.2微軟企業(yè)庫.22.3三層應(yīng)用程序模型.22.4信息安全性.33網(wǎng)上圖書銷售系統(tǒng)規(guī)劃設(shè)計.33.1需求分析.33.2系統(tǒng)基本結(jié)構(gòu).43.3系統(tǒng)設(shè)計.43.3.1系統(tǒng)模塊設(shè)計.43.3.2數(shù)據(jù)庫設(shè)計.54網(wǎng)上圖書銷售系統(tǒng)開發(fā)實現(xiàn).94.1用戶功能模塊實現(xiàn).94.1.1用戶注冊登錄.9

8、4.1.2圖書瀏覽.134.1.3圖書顯示.144.1.4圖書搜索.154.1.5收藏夾.154.1.6購物車.154.1.7圖書訂單.194.2管理員功能模塊實現(xiàn).204.2.1圖書管理.204.2.2分類信息管理.234.2.3出版商信息管理.244.2.4用戶信息管理.254.2.5訂單管理.25結(jié) 論.26參考文獻.26第 1 頁 共 28 頁1 1 引言引言1.11.1 課題背景課題背景隨著 internet 的迅速崛起,網(wǎng)絡(luò)信息化的發(fā)展,在線圖書銷售作為一種典型的 web 電子商務(wù)系統(tǒng)也迅速的發(fā)展并深入人們的日常生活中。更多的人更愿意足不出戶就可以挑選購買自己喜歡的各種書籍,這樣大

9、大縮短了購書的時間,提高了效率。而且,圖書因其具有標(biāo)識精晰、規(guī)格統(tǒng)一、特征容易描述、同種商品個體之間無差異等特性而能成為發(fā)展電子商務(wù)的最為理想的商品類型??梢姡W(wǎng)上圖書銷售系統(tǒng)跨越了時間和空間的限制,給商業(yè)流通領(lǐng)域帶來了不一樣的變革,也給消費者帶來了便捷。只要網(wǎng)絡(luò)發(fā)展沒有停止,網(wǎng)上圖書銷售的發(fā)展就不會停止。1.21.2 本課題研究本課題研究內(nèi)容內(nèi)容本系統(tǒng)采用 b/s(browser/server)結(jié)構(gòu)進行設(shè)計,使用 sql server 2000構(gòu)建數(shù)據(jù)庫,并在.net 環(huán)境下使用 visual c#.net 語言開發(fā)的一個功能完善的網(wǎng)上圖書銷售系統(tǒng)。其具有一定的實用性,用戶可以在網(wǎng)上瀏覽圖書

10、信息,查找圖書資料,將感興趣的書籍加入收藏夾,或放入購物車并下訂單購買;同時,管理員也可以對整個系統(tǒng)的信息和數(shù)據(jù)進行管理,可以管理庫存書信息、分類信息、出版社信息、用戶信息和訂單信息。1.31.3 本課題研究的意義本課題研究的意義本課題的目標(biāo)就是是將圖書銷售由傳統(tǒng)的商店模式向在線銷售的轉(zhuǎn)變,同時還對銷售的定單和圖書的種類等信息進行在線管理,其意義就在于以此來實現(xiàn)人們不出門就能夠便捷的買到自己喜歡的各種書籍,向客戶展示出一種新穎的購書理念。網(wǎng)上購書的方式必將日趨被大家所接受。2 2網(wǎng)上圖書銷售系統(tǒng)相關(guān)技術(shù)網(wǎng)上圖書銷售系統(tǒng)相關(guān)技術(shù)2.12.1 .net 開發(fā)平臺及開發(fā)平臺及 c.net 開發(fā)語言開

11、發(fā)語言.net 框架是 microsoft 公司推出的一種全新的開發(fā)平臺,提供了統(tǒng)一的、面向?qū)ο蟛⑶铱梢詳U展的編程類庫和完善的集成開發(fā)環(huán)境,大大簡化了應(yīng)用程序的開發(fā)過程,并且具有良好的移植性和安全性。asp.net 是建立在公共語言運行庫上的 web 編程框架,相對于 asp 而言,asp.net 提供了更強的性能、更方便的工具支持、更好的平臺支持和靈活性。其一大革命性進步是可以將應(yīng)用程序邏輯與表示代碼清楚地分開,這樣一來 web 應(yīng)用程序的開發(fā)人員可以使用和windows 桌面程序開發(fā)類似的編程模型,從而大大降低了開發(fā)難度。同時,asp.net 在進行用戶界面開發(fā)和基礎(chǔ)程序結(jié)構(gòu)生成時具有很多

12、優(yōu)勢。第 2 頁 共 28 頁首先,asp.net 是一個已編譯的、基于.net 的開發(fā)環(huán)境,利用整個.net 框架,開發(fā)人員可以方便的進行程序開發(fā);其次,asp.net 可以無縫地與其它 html編輯器及其編程工具一起工作,使得 web 開發(fā)更加方便;再次,在 asp.net 中利用.net 框架中的 ado.net 的強大功能,可以高效便捷的訪問數(shù)據(jù)庫,asp.net 提供了簡單的模型,該模型使開發(fā)人員能夠編寫應(yīng)用程序的運行邏輯,并且保留了會話狀態(tài)功能;最后,.net 框架和 asp.net 中提供了默認(rèn)授權(quán)和驗證方案,可以根據(jù)需要方便地移除、添加或者替換這些方案。visual c#.ne

13、t 語言是.net 平臺首推的開發(fā)語言,是一種全新的、面向?qū)ο蟮木幊陶Z言。c語言從 c+語言發(fā)展而來,它同時吸取了 c/c+和 java 語言的優(yōu)點,可以快速地編寫各種基于 microsoft .net 平臺的應(yīng)用程序。c#語言使開發(fā)者用更少的代碼做更多的事,同時也不易出錯,提高了編程效率和安全性。2.22.2 微軟企業(yè)庫微軟企業(yè)庫眾所周知,重復(fù)編寫數(shù)據(jù)訪問的代碼是十分繁瑣的,實際上很多系統(tǒng)中都會有類似的模塊,比如配置的保存和讀取、寫日志、異常的處理等,大多數(shù)情況下開發(fā)人員需要在每個系統(tǒng)中編寫具有類似功能的子模塊,因此雖然它們之間只存在細(xì)微的區(qū)別,但是代碼必須做修改才能夠滿足要求。微軟公司提供

14、的企業(yè)庫正是為了解決這些問題而推出的,開發(fā)人員無需修改代碼,只要修改幾個配置文件,就可以在不同的系統(tǒng)中實現(xiàn)類似的功能。可見,企業(yè)庫大大減少了系統(tǒng)連接數(shù)據(jù)庫的代碼,帶來了方便。企業(yè)庫(enterpriselibraryjune2005)是微軟推出的開源項目,它為企業(yè)級開發(fā)提供了功能強大的多個應(yīng)用程序塊。該企業(yè)庫的設(shè)計思想是為了協(xié)助開發(fā)商解決企業(yè)級應(yīng)用開發(fā)過程中所面臨的一系列共性的問題, 如安全、日志、數(shù)據(jù)訪問、配置管理等,并將這些廣泛使用的應(yīng)用程序塊集成封裝至企業(yè)庫的程序包中。企業(yè)庫由七個子模塊組成,分別是配置管理應(yīng)用程序塊(configuration application block) 、數(shù)

15、據(jù)訪問應(yīng)用程序塊(data access application block) 、安全應(yīng)用程序塊(security application block) 、日志及儀表盤管理應(yīng)用程序塊(logging and instrumentation application block) 、加密應(yīng)用程序塊(cryptography application block) 、異常處理應(yīng)用程序塊(exception handling application block) 、緩存應(yīng)用程序塊(caching application block) ,這七個應(yīng)用程序塊幾乎覆蓋了企業(yè)級架構(gòu)開發(fā)的核心環(huán)節(jié)??梢姡髽I(yè)庫具有

16、可選擇、可擴展、實用、強大、易用性和規(guī)范性等特性。2.32.3 三層應(yīng)用程序模型三層應(yīng)用程序模型本課題在系統(tǒng)設(shè)計上采用了三層應(yīng)用程序模型。所謂的“三層應(yīng)用程序模第 3 頁 共 28 頁型”是將系統(tǒng)按照功能的邏輯層次進行劃分的,分別是表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層,以此實現(xiàn)模塊化的設(shè)計。數(shù)據(jù)訪問層顧名思義是用來處理系統(tǒng)對數(shù)據(jù)庫的操作,系統(tǒng)中所有數(shù)據(jù)庫的調(diào)用都通過數(shù)據(jù)訪問層實現(xiàn)。業(yè)務(wù)邏輯層處于表示層和數(shù)據(jù)訪問層之間,它一方面調(diào)用數(shù)據(jù)訪問層的類和方法實現(xiàn)系統(tǒng)中的業(yè)務(wù)規(guī)則,一方面封裝相應(yīng)的調(diào)用方法供表示層調(diào)用。表示層主要包括了系統(tǒng)的頁面呈現(xiàn)和相關(guān)控件的代碼。這種多層的應(yīng)用程序體系結(jié)構(gòu)具有以下一些優(yōu)點,

17、首先,程序代碼在各個層次之間實現(xiàn)松耦合和模塊化;其次,每個層次的代碼可重用,維護性更好;最后,可以將各個層次在物理上部署到多個層次中,實現(xiàn)部署的可擴展性。2.42.4 信息安全性信息安全性在大多數(shù)系統(tǒng)中,用戶的密碼信息在數(shù)據(jù)庫中是以明文的方式存放的,數(shù)據(jù)庫管理員稍有疏忽就有可能導(dǎo)致用戶的隱私泄漏,尤其是對于一些涉及金融、商業(yè)領(lǐng)域的網(wǎng)絡(luò)應(yīng)用,這一點漏洞將會導(dǎo)致十分嚴(yán)重的后果。所以,為了加強本系統(tǒng)信息的安全性,在用戶登錄模塊中,對密碼這樣的敏感信息進行加密是十分必要的。本課題使用了一種常見的哈希加密算法md5 加密算法。md5加密算法是不可逆的,經(jīng)過哈希加密的數(shù)據(jù)是沒有相應(yīng)的解密算法回到原狀的,在

18、應(yīng)用中是通過比較兩個數(shù)據(jù)的哈希值是否相等,從而達(dá)到校驗的目的。本課題中,在新客戶注冊的時候,對客戶設(shè)置的登錄密碼用 md5 加密算法進行加密,那么存入數(shù)據(jù)庫的將是客戶登錄密碼的 md5 哈希值,在登錄驗證時根據(jù)用戶輸入的密碼計算響應(yīng)的 md5 哈希值進行比較。可見,通過 md5 算法實現(xiàn)了數(shù)據(jù)的加密存儲和驗證,同時,md5 加密是不可逆的,即使惡意攻擊者獲得了數(shù)據(jù)庫的訪問權(quán)限,也仍然無法得知用戶的密碼信息,從而提高了系統(tǒng)的安全性。3 3網(wǎng)上圖書銷售系統(tǒng)規(guī)劃設(shè)計網(wǎng)上圖書銷售系統(tǒng)規(guī)劃設(shè)計3.13.1 需求分析需求分析網(wǎng)上圖書銷售系統(tǒng)首先應(yīng)該方便用戶瀏覽、購買圖書,同時需要由系統(tǒng)管理員進行管理和維護

19、,由此分為前臺用戶功能和后臺管理員功能兩個方面。前臺用戶功能:為了方便用戶購買圖書,網(wǎng)上圖書銷售系統(tǒng)應(yīng)該提供以下幾種用戶功能。1) 用戶注冊登錄:用戶進行注冊,登錄。2) 圖書瀏覽:以列表方式顯示圖書信息供用戶瀏覽。3) 圖書顯示:顯示圖書的詳細(xì)信息。4) 圖書搜索:使用搜索功能使用戶快速地找到所喜歡的圖書。第 4 頁 共 28 頁5) 收藏夾:用戶可以先將自己感興趣的圖書收藏起來,以便下次登錄后查看相關(guān)信息,如果打算購買時再放入購物車中。6) 購物車:這是網(wǎng)上圖書銷售系統(tǒng)的基本元素。用戶找到所喜歡的圖書時,可以將其放入購物車中,再繼續(xù)查看其它圖書。7) 圖書訂單:用戶下訂單購買圖書,由管理員

20、定期負(fù)責(zé)處理,根據(jù)訂單信息向用戶送貨。后臺管理員功能:管理員負(fù)責(zé)維護整個系統(tǒng)的運行,管理系統(tǒng)所有的信息和數(shù)據(jù),應(yīng)該提供以下功能。1) 圖書管理:維護網(wǎng)上圖書銷售系統(tǒng)中的所有圖書信息。2) 分類信息管理:維護系統(tǒng)中的所有分類信息。3) 出版商信息管理:維護系統(tǒng)中的所有出版商信息。4) 用戶信息管理:顯示所有注冊用戶的信息。5) 訂單管理:定期對用戶訂單進行處理,向用戶送貨。3.23.2 系統(tǒng)基本結(jié)構(gòu)系統(tǒng)基本結(jié)構(gòu)由于 b/s(browser/server)結(jié)構(gòu)具有較好的獨立性、可伸縮性和安全性,適合于不同數(shù)據(jù)庫之間的互連,并且便于管理維護,因此整個系統(tǒng)采用客戶端、web 服務(wù)器及數(shù)據(jù)庫服務(wù)器的 b

21、/s 結(jié)構(gòu)進行設(shè)計?;窘Y(jié)構(gòu)如圖 2-1 所示。圖 3-1 系統(tǒng)基本結(jié)構(gòu)利用 iis 架構(gòu) web 服務(wù)器,用于連接客戶端和數(shù)據(jù)庫服務(wù)器。對于客戶端發(fā)出的需要對數(shù)據(jù)庫進行訪問的請求,web 服務(wù)器負(fù)責(zé)客戶端與數(shù)據(jù)庫服務(wù)器的網(wǎng)絡(luò)通信,并將相關(guān)數(shù)據(jù)嵌入返回給客戶端的 web 頁面;對于客戶端發(fā)出的不需要對數(shù)據(jù)庫進行訪問的請求,web 服務(wù)器將直接處理這些請求,并將最終生成的 web 頁面發(fā)往客戶端瀏覽器。3.33.3 系統(tǒng)設(shè)計系統(tǒng)設(shè)計.1 系統(tǒng)模塊設(shè)計系統(tǒng)模塊設(shè)計分為用戶功能模塊設(shè)計和管理員功能模塊設(shè)計兩方面,用戶登錄后,可以進行圖書瀏覽、下訂單等操作;管理員登錄后,可以進行圖書管

22、理、分類信息管理、出版商信息管理、用戶信息管理和訂單管理等操作。1. 用戶功能模塊設(shè)計:普通用戶的各個功能模塊,具體設(shè)計如圖 3-2 所示:第 5 頁 共 28 頁用用戶戶功功能能模模塊塊圖書搜索收藏夾購物車圖書訂單用戶注冊登錄圖書瀏覽圖書顯示圖 3-2 用戶功能模塊2. 管理員功能模塊設(shè)計:管理員負(fù)責(zé)管理整個系統(tǒng)所有的信息和數(shù)據(jù),并做相應(yīng)的一些處理。其功能模塊如圖 3-3 所示。管管理理員員功功能能模模塊塊庫存書的信息管理分類信息管理用戶信息查詢處理訂單出版商信息管理圖 3-3 管理員功能模塊.2 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫主要由 9 個數(shù)據(jù)表組成。books(圖書信息表),

23、items(圖書項信息表),categories(圖書分類信息表)存儲圖書的分類信息,itemcategory(圖書項與分類關(guān)聯(lián)信息表) ,publishers(出版商信息表)存儲出版商信息,customers(客戶信息表)存儲用戶注冊信息,favorites(收藏夾信息表)存儲用戶的收藏夾信息,orders(訂單信息表)存儲訂單的各項信息,orderitems(訂單項信息表)存儲訂單具體的購買信息。從而,可詳細(xì)設(shè)計出各數(shù)據(jù)庫對象,包括數(shù)據(jù)表和存儲過程。數(shù)據(jù)表:第 6 頁 共 28 頁圖書相關(guān)信息表分別如表 3-1、表 3-2、表 3-3、表 3-4、表 3-5 所示。表 3-1 圖書信息表

24、booksbooks(itemid 為主鍵,publisherid 為外鍵)列(屬性)名中文名稱類型寬度是否允許為空itemid圖書項 id 號int4not nullpublisherid出版商 id 號int4not nullauthor作者名nvarchar40not nullisbnisbn 號char10not nullsalenum已銷售數(shù)量int4not null表 3-2 圖書項信息表 itemsitems(pkid 為主鍵)列(屬性)名中文名稱類型寬度是否允許為空pkid圖書項唯一 id int4not nullname書名nvarchar255not nullimagefi

25、lespace圖書封面圖文件地址nvarchar255nulldescription說明nvarchar2000nullunitprice單價momey8not null表 3-3 圖書分類信息表 categoriescategories(pkid 為主鍵)列(屬性)名中文名稱類型寬度是否允許為空pkid分類唯一 idint4not nulldescription分類說明nvarchar255null表 3-4 圖書項與分類關(guān)聯(lián)信息表 itemcategoryitemcategory(itemid 為主鍵,categoryid 為外鍵)列(屬性)名中文名稱類型寬度是否允許為空itemid圖書項

26、 id 號int4not nullcategoryid分類 id 號int4not null表 3-5 出版商信息表 publisherspublishers(pkid 為主鍵)列(屬性)名中文名稱類型寬度是否允許為空pkid出版商唯一 idint4not nullname出版商名稱nvarchar40not null用戶相關(guān)信息表分別如表 3-6、表 3-7 所示。表 3-6 客戶信息表 customerscustomers(pkid 為主鍵)列(屬性)名中文名稱類型寬度是否允許為空pkid客戶唯一 idint4not nullemail客戶 emailnvarchar50not nullp

27、assword客戶登錄密碼binary24nullname客戶名稱nvarchar40null第 7 頁 共 28 頁表 3-7 收藏夾信息表 favoritesfavorites(pkid 為主鍵,customerid、itemid 為外鍵)列(屬性)名中文名稱類型寬度是否允許為空pkid收藏夾 id 號int4not nullcustomerid客戶 id 號int4not nullitemid圖書項 id 號int4not null訂單相關(guān)信息表分別如表 3-8、表 3-9 所示。表 3-8 訂單信息表 ordersorders(pkid 為主鍵,customerid 為外鍵)列(屬性)

28、名中文名稱類型寬度是否允許為空pkid訂單唯一 idint4not nullcustomerid客戶 id 號int4nullstatus訂單狀態(tài)int4nullorderdata訂單生成日期datetime8nullshiptoname收件人名稱nvarchar40nullshiptoaddress送貨地址nvarchar255not nullsubtotal總價momey8null表 3-9 訂單項信息表 orderitemsorderitems(orderid 和 itemid 為主鍵)列(屬性)名中文名稱類型寬度是否允許為空orderid訂單 id 號int4not nullitemi

29、d圖書項 id 號int4not nullunitprice單價money8not nullquantity購買數(shù)量int4not null存儲過程:因為存儲過程可以在程序中被多次調(diào)用,而不必多次重復(fù)編寫該存儲過程的 sql 語句,所以數(shù)據(jù)庫中建立了大量的存儲過程,便于將相關(guān)信息加入到數(shù)據(jù)庫中。與客戶相關(guān)的存儲過程有:新客戶注冊(customerregister) ,客戶登錄(customerlogin) ,修改客戶信息(editcustomer) ,獲取所有客戶的信息(getcustomers) ,獲取單個用戶的信息(getcustomerbyid) 。與圖書相關(guān)的存儲過程有:新增圖書(ad

30、dbook) ,刪除圖書(delbook) ,修改圖書信息(editbook) ,獲取所有圖書信息(getallbooks) ,根據(jù)圖書項 id獲取單本圖書信息(getbookbyid) ,根據(jù)分類 id 獲取圖書信息(getbooksbycategoryid) ,根據(jù)分類 id 獲取熱門書圖書信息(getpopbooksbycategoryid) ,根據(jù)書名獲取圖書信息(getbooksbytitle) ,根據(jù)關(guān)鍵詞獲取圖書信息(getbooksbykeyword) ,根據(jù) isbn 獲取圖書信息(getbooksbyisbn) ,根據(jù)出版商獲取圖書信息(getbooksbypublishe

31、rid)根第 8 頁 共 28 頁據(jù)作者獲取圖書信息(getbooksbyauthor) 。與出版商相關(guān)的存儲過程有:新增出版商(addpublisher) ,刪除出版商(delpublisher) ,修改出版商信息(editpublisher) ,獲取所有出版商信息(getpublishers) 。與圖書分類相關(guān)的存儲過程有:新增圖書分類(addcategory) ,刪除圖書分類(delcategory) ,修改圖書分類說明(editcategory) ,獲取圖書分類信息(getcategories)。與收藏夾相關(guān)的存儲過程有:新增收藏記錄(addfavorite) ,刪除收藏信息(delf

32、avorite) ,根據(jù)客戶 id 獲取收藏記錄(getfavoritesbycustomerid) 。與訂單相關(guān)的存儲過程有:獲取訂單信息(getorders) ,獲取單條訂單信息(getorderbyid) ,根據(jù)客戶 id 獲取訂單信息(getordersbycustomerid) ,根據(jù)狀態(tài)獲取訂單信息(getordersbystatus) ,根據(jù)日期獲取訂單信息(getordersbydate) ,提交訂單(submitorder) ,修改訂單(editorder) ,取消訂單(cancelorder) ,接受訂單(acceptorder) ,確定訂單(confirmorder) ,

33、撤銷訂單(revokeorder) ,popfirstword ,插入訂單明細(xì)記錄(insertorderdetailsbylist) ,插入單條訂單項(insertorderdetail) 。由于該系統(tǒng)建立的存儲過程很多,所以在此就只列舉出一個存儲過程的sql 腳本。新增圖書存儲過程 addbook 的 sql 腳本如下:create procedure addbook name nvarchar(255), imagefilespace nvarchar(255), description nvarchar(2000), unitprice money, publisherid int,

34、author nvarchar(40), isbn nchar(13), categoryid int, itemid int = null output -output 可以返回一個值as begin tran -事務(wù) -新增 items 表記錄 insert items (name, imagefilespace, description, unitprice) select name,imagefilespace,description,unitprice第 9 頁 共 28 頁 select itemid = identity -獲取數(shù)據(jù)表中最后一條插入數(shù)據(jù)的 identity 值-新

35、增 books 表記錄 insert books (itemid, publisherid, author,isbn) select itemid,publisherid,author,isbn-新增 itemcategory 表記錄 insert itemcategory (itemid,categoryid) select itemid,categoryid commit tran return 0go4 4網(wǎng)上圖書銷售系統(tǒng)開發(fā)實現(xiàn)網(wǎng)上圖書銷售系統(tǒng)開發(fā)實現(xiàn)4.14.1 用戶功能模塊實現(xiàn)用戶功能模塊實現(xiàn)用戶功能模塊主要包括注冊登錄、圖書瀏覽、圖書顯示、圖書搜索、購物車、收藏夾、圖書訂單這幾個

36、部分。在程序設(shè)計中,各模塊后臺編碼部分的設(shè)計實現(xiàn)是重點和難點,因此論文將著重說明模塊的后臺編碼部分,對于頁面設(shè)計部分只作了簡單說明。.1 用戶注冊登錄用戶注冊登錄.2 圖書瀏覽圖書瀏覽圖書瀏覽使用 2 種方式實現(xiàn):分類瀏覽和熱門書推薦。頁面設(shè)計中,兩種方式都使用了 asp.net 中的 datalist 控件來綁定數(shù)據(jù),以列表方式顯示。因為datalist 自定義模塊比 datagrid 更能夠顯示豐富多變的數(shù)據(jù)列表。分類瀏覽和熱門書推薦的實現(xiàn)都差不多,唯一的差異就是熱門書推薦部分只顯示銷售量前 4 的圖書。分類瀏覽圖書頁面的執(zhí)行結(jié)果如圖 4-3 所示。當(dāng)用戶點

37、擊相關(guān)類別鏈接時,就可以實現(xiàn)分類瀏覽。這些鏈接包含查詢字符串,在 web 服務(wù)器中通過解析這些字符串來確定用戶所點擊的鏈接。當(dāng)點擊“藝術(shù)”鏈接時,頁面上半部分顯示熱門書推薦,下半部分顯示全部圖書列表,顯示結(jié)果如圖 4-4 所示。圖 4-3 分類瀏覽頁面 第 10 頁 共 28 頁圖 4-4 分類瀏覽顯示結(jié)果在分類瀏覽頁面 category.aspx 的實現(xiàn)過程中,“收藏夾”按鈕只有在用戶登錄的情況下才顯示,在 datalist 控件里 itemcreate 事件的相應(yīng)函數(shù)中添加了相應(yīng)的代碼進行判斷。其后臺的部分代碼如下:private void dlbook_itemcreated(objec

38、t sender, system.web.ui.webcontrols.datalistitemeventargs e)/datalist.itemcreated ,當(dāng)在 datalist 控件中創(chuàng)建項時在服務(wù)器上發(fā)生。imagebutton ib = e.item.findcontrol(ibfavorite) as imagebutton;if (ib != null)ib.visible = ucheader.islogin;/dlbook_itemcommand,當(dāng)單擊 datalist 控件中的任一按鈕時發(fā)生private void dlbook_itemcommand(object

39、 source, system.web.ui.webcontrols.datalistcommandeventargs e)/添加圖書到收藏夾或購物車if (e.commandname = addfavorite)int iitemid = convert.toint32(e.commandargument);int icustomerid = convert.toint32(user.identity.name);common.favorite f = new common.favorite(iitemid, icustomerid);if (favoritesystem.addfavori

40、te(f) 0)response.redirect(/favorite.aspx);elseresponse.write(add_favorite_fail);else if (e.commandname = addcart)int iitemid = convert.toint32(e.commandargument);bookcart.setitem(iitemid);response.redirect(/shoppingcart.aspx);.3 圖書顯示圖書顯示顯示圖書詳細(xì)信息,書名、作者、價格、出版商、isbn 等信息,通過第 11 頁 共 28 頁datalist

41、控件來實現(xiàn)數(shù)據(jù)綁定。同時提供“購物車”和“收藏夾”鏈接,用于將圖書加入購物車或收藏夾。點擊圖書封面圖片,如“蓮花”,會顯示圖書相關(guān)信息,如圖 4-5 所示。圖 4-5 圖書詳細(xì)信息顯示頁面如果喜歡該本書,可以通過點擊“購物車”或“收藏夾”鏈接,將當(dāng)前圖書加入購物車或收藏夾。.4 圖書搜索圖書搜索用戶點擊“查找”按鈕,可以對圖書進行快速搜索,該功能也是通過一個datalist 控件來實現(xiàn)的。圖書搜索方式使用控件標(biāo)識定義,分別為書名、作者、isbn 和關(guān)鍵詞,然后由用戶輸入搜索條件,程序便執(zhí)行數(shù)據(jù)庫中的存儲工程在數(shù)據(jù)表中查找數(shù)據(jù)并顯示出來。如果方式選擇作者,輸入條件為“安妮”,搜索

42、結(jié)果如圖 3-6 所示。圖 4-6 圖書搜索結(jié)果顯示.5 收藏夾收藏夾用戶收藏夾存儲書名、價格等信息。該頁面的實現(xiàn)還是通過使用 datalist控件來顯示用戶收藏的圖書。收藏夾頁面執(zhí)行結(jié)果如圖 3-7 所示。圖 4-7 收藏夾頁面用戶點擊“收藏夾”鏈接,可以先將自己感興趣的圖書放入圖書收藏夾。如果打算購買再從收藏夾中加入購物車,同時也提供了“刪除”按鈕,如果不喜歡收藏夾的部分圖書,可以點擊“刪除”按鈕刪除收藏的圖書。第 12 頁 共 28 頁.6 購物車購物車購物車是本系統(tǒng)的重要組成部分,這部分的設(shè)計是重點和難點。在本系統(tǒng)了主要實現(xiàn)了兩個基本功能。用戶添加圖書,

43、即用戶將打算購買的圖書添加到購物車中;和用戶管理自己的訂單,即用戶可以隨時查看購物車,更新購物車中的圖書數(shù)量,或者刪除不想購買的圖書。購物車?yán)?datagrid 控件來顯示用戶所選擇的圖書書名、單價、數(shù)量以及總價格等信息。在 datagrid 中主要使用了模板列 templatecolumn 進行顯示和處理,模板列包括數(shù)量 quantity、書名 title、單價 unitprice 和小計 price,其中用戶只可對圖書數(shù)量進行修改。購物車的內(nèi)容通過 session 對象來保存,因為會話狀態(tài) session 可以在會話期間為用戶提供單獨的數(shù)據(jù),不同會話之間的信息是不共享的。其實現(xiàn)的代碼如下

44、:public cart bookcart/通過session對象保存購物車內(nèi)容getif (sessioncart = null)sessioncart = new cart();return (cart)sessioncart;setsessioncart = value;程序中使用 page_load()調(diào)用 bindgrid()函數(shù)將購物車中的圖書信息綁定到 datagrid 中。bindgrid()實現(xiàn)數(shù)據(jù)綁定,通過使用大小可按需動態(tài)增加的數(shù)組arraylist 來記錄圖書項的 id 和購買數(shù)量,然后計算購買圖書的總價格,其代碼如下:private void bindgrid()de

45、cimal totalprice = 0;bookdata bookdata = new bookdata();bookdata.tablesbooks.columns.add(quantity, typeof(system.int32);bookdata.tablesbooks.columns.add(price, typeof(system.decimal);for (int i = 0;i bookcart.count;i+)/通過數(shù)組來實現(xiàn)計算總價格int iitemid = bookcart.getitemid(i);第 13 頁 共 28 頁int iquantity = book

46、cart.getquantity(i);bookdata tempdata = booksystem.searchbooks(booksearchtype.pkid, iitemid.tostring();bookdata.tablesbooks.importrow(tempdata.tablesbooks.rows0);bookdata.tablesbooks.rowsiquantity = iquantity;decimal unitprice = convert.todecimal(tempdata.tablesbooks.rows0unitprice); bookdata.tables

47、books.rowsiprice = iquantity * unitprice; /每項書的總價錢(小計數(shù)量單價)totalprice += iquantity * unitprice;/總價格bookdata.acceptchanges();dgcart.datasource = bookdata;dgcart.databind();lbltotal.text = string.format(總價:0, totalprice);其中 boocart 是購物車對象 cart 的一個實例,cart 類保存了多組圖書項 id和購物數(shù)量的值,并且根據(jù)應(yīng)用的需要實現(xiàn)了getitemid、getqua

48、ntity、setitem、clear 等方法。部分代碼如下:private arraylist _itemid_arr;private arraylist _quantity_arr;public int countget return _itemid_arr.count;public int getitemid(int index) /獲取圖書項idif (index count)return (int)_itemid_arrindex;elsereturn -1;public int getquantity(int index)/獲取各類圖書的數(shù)量if (index 0)_quantit

49、y_arrindex = iquantity;else_itemid_arr.removeat(index);_quantity_arr.removeat(index);else_itemid_arr.add(iitemid);_quantity_arr.add(iquantity);購物車執(zhí)行結(jié)果如圖 4-8 所示:圖 4-8 購物車頁面如果用戶想購買幾本同樣的圖書,可以在購買數(shù)量文本框中輸入想要購買的本數(shù),然后單擊“更新購物車”來更新購買數(shù)量,其實現(xiàn)代碼如下:private void lbupdate_click(object sender, system.eventargs e)/更新購

50、物車foreach (datagriditem item in dgcart.items)int iquantity = convert.toint32(textbox)item.findcontrol(tbquantity).text);int iitemid = 第 15 頁 共 28 頁convert.toint32(htmlinputhidden)item.findcontrol(hiditemid).value);bookcart.setitem(iitemid, iquantity);bindgrid();當(dāng)用戶確定購買圖書時,可以單擊“提交訂單”按鈕轉(zhuǎn)到提交訂單submitord

51、er.aspx 頁面。數(shù)據(jù)綁定的方法同購物車頁面的方法一樣,只是商品編號 pkid、數(shù)量 quantity、書名 title、單價 unitprice 和小計 price 都是綁定列,且都是只讀的,不能修改。其執(zhí)行結(jié)果頁面如圖 4-9 所示:圖 4-9 提交訂單頁面然后,用戶可以點擊“提交訂單”按鈕將購物車中的每一項信息加入到數(shù)據(jù)庫訂單信息中,管理員可以根據(jù)訂單信息向用戶送貨。.7 圖書訂單圖書訂單在購買記錄頁面,用戶可以查看到自己所下的所有的訂單信息,在管理員沒有處理訂單之前,用戶可以取消所下的訂單。該頁面通過使用 datagrid 控件來實現(xiàn)數(shù)據(jù)綁定,具體通過 bindgr

52、id()函數(shù)來調(diào)用執(zhí)行數(shù)據(jù)庫中的存儲工程,并根據(jù)訂單狀態(tài)來判斷用戶是否可以取消訂單,其實現(xiàn)代碼如下:private void bindgrid()orderdata orderdata = ordersystem.getordersbycustomerid(customerid);orderdata.tablesorders.columns.add(statusname, typeof(system.string);orderdata.tablesorders.columns.add(cancancel, typeof(system.boolean);foreach (datarow dr i

53、n orderdata.tablesorders.rows)drstatusname = getstatusname(int)drstatus);drcancancel = (int)drstatus = 0;orderdata.acceptchanges();dgorder.datasource = orderdata;dgorder.databind();用戶登錄后,購買記錄頁面執(zhí)行結(jié)果如圖 4-10 所示:第 16 頁 共 28 頁圖 4-10 購買記錄頁面用戶可以點擊訂單編號來查詢自己所下訂單的相關(guān)信息,其執(zhí)行結(jié)果如圖4-11 所示:圖 4-11 訂單詳細(xì)信息頁面4.24.2 管理員功

54、能模塊實現(xiàn)管理員功能模塊實現(xiàn).1 圖書管理圖書管理圖書管理是網(wǎng)上圖書銷售系統(tǒng)的重要組成部分。使用 datagrid 控件進行數(shù)據(jù)的展示、修改和刪除。所有圖書的展示通過執(zhí)行 databind()來實現(xiàn),其執(zhí)行結(jié)果如圖 4-12 所示:圖 4-12 圖書管理頁面點擊“添加新圖書”,可以增加新圖書的相關(guān)信息,其部分代碼如下:private void lbaddbook_click(object sender, system.eventargs e) /添加圖書項dgbooks.selectedindex = -1;pnldetail.visible = false;pnladdboo

55、k.visible = true;categorydata categorydata = categorysystem.getcategories();publisherdata publisherdata = publishersystem.getpublishers();dataset ds = new dataset();datatable dt = new datatable();第 17 頁 共 28 頁ds.tables.add(dt);ds.tables0.columns.add(categorylist, typeof(categorydata);ds.tables0.colu

56、mns.add(publisherlist, typeof(publisherdata);ds.tables0.rows.add(new object null, null);ds.tables0.rows0categorylist = categorydata;ds.tables0.rows0publisherlist = publisherdata;ds.acceptchanges();dladdbook.datasource = ds;dladdbook.databind();private void dladdbook_itemcommand(object source, system

57、.web.ui.webcontrols.datalistcommandeventargs e)/添加新圖書if (e.commandname = canceladd) else if (e.commandname = submitadd)string strname = (textbox)(e.item.findcontrol(tbbooknameadd).text;string strauthor = (textbox)(e.item.findcontrol(tbauthoradd).text;string strisbn = (textbox)(e.item.findcontrol(tbi

58、sbnadd).text;string strdescription = (textbox)(e.item.findcontrol(tbdescriptionadd).text;string strunitprice = (textbox)(e.item.findcontrol(tbunitpriceadd).text;int icategoryid = convert.toint32(dropdownlist)(e.item.findcontrol(ddlcategoryadd).selectedvalue);int ipublisherid = convert.toint32(dropdo

59、wnlist)(e.item.findcontrol(ddlpublisheradd).selectedvalue);common.book book = new common.book(strname, , strdescription, strunitprice, ipublisherid, strauthor, strisbn, icategoryid);int iitemid = booksystem.addbook(book);book.imagefilespace = string.format(bookimages/0.jpg, iitemid);if (booksystem.e

60、ditbook(iitemid, book) = 0)lblmessage.text = add_success;/添加成功elselblmessage.text = add_fail;/添加失敗uploadimage(iitemid);pnladdbook.visible = false;bindgrid();添加圖書執(zhí)行結(jié)果如圖 4-13 所示:第 18 頁 共 28 頁圖 4-13 添加圖書點擊“修改”按鈕,可對圖書相關(guān)信息進行修改。該處的難點是如何在點擊“修改”按鈕時在分類和出版商的下拉列表中顯示全部的分類和出版商列表,而且默認(rèn)選中的是圖書當(dāng)前的分類和出版商,該系統(tǒng)采用了數(shù)據(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論