




已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
畢畢 業(yè)業(yè) 設設 計計 論論 文文 基于基于 NET NET 的網(wǎng)上圖書銷售系統(tǒng)的設計與實現(xiàn)的網(wǎng)上圖書銷售系統(tǒng)的設計與實現(xiàn) 論文作者姓名 論文作者姓名 申請學位專業(yè) 申請學位專業(yè) 申請學位類別 申請學位類別 指指導導教教師師姓姓名名 職職稱稱 論文提交日期 論文提交日期 基于基于 NET NET 的網(wǎng)上圖書銷售系統(tǒng)的設計與實現(xiàn)的網(wǎng)上圖書銷售系統(tǒng)的設計與實現(xiàn) 摘摘 要要 隨著 Internet 的迅速崛起 網(wǎng)絡信息化的發(fā)展 在線圖書銷售作為一種典型 的 Web 電子商務系統(tǒng)也迅速的發(fā)展并深入人們的日常生活中 更多的人更愿意 足不出戶就可以挑選購買自己喜歡的各種書籍 這樣大大縮短了購書的時間 提高了效率 可見 網(wǎng)上圖書銷售系統(tǒng)跨越了時間和空間的限制 給商業(yè)流通 領域帶來了不一樣的變革 也給消費者帶來了便捷 本系統(tǒng)采用 B S 結(jié)構(gòu)進行 設計 是在 NET 環(huán)境下使用 Visual C net 語言開發(fā)的一個功能完善的網(wǎng)上圖書 銷售系統(tǒng) 其具有一定的實用性 用戶可以在網(wǎng)上瀏覽圖書信息 查找圖書資料 將感興趣的書籍加入收藏夾 或放入購物車并下訂單購買 同時 管理員也可以 對整個系統(tǒng)的信息和數(shù)據(jù)進行管理 可以管理庫存書信息 分類信息 出版社信 息 用戶信息和訂單信息 此外 本論文采用的分析方法和設計過程具有一定 的普遍性 可以應用到其它系統(tǒng)的開發(fā)設計當中 關鍵詞關鍵詞 網(wǎng)上購書系統(tǒng) NET 電子商務 數(shù)據(jù)庫 The Design and Realization of Web Bookshop Management System Based on NET Abstract With the rapid rise of Internet the development of network information technology web bookshop system as a typical electronic commerce system also develops rapidly and deeps into people s 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 Obviously 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 the 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 time Administrators can manage the entire system s 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 words Web bookshop system NET Electronic commerce Database 目目 錄錄 論文總頁數(shù) 28 頁 1引言 1 1 1課題背景 1 1 2本課題研究內(nèi)容 1 1 3本課題研究的意義 1 2網(wǎng)上圖書銷售系統(tǒng)相關技術 1 2 1 NET 開發(fā)平臺及 C NET 開發(fā)語言 1 2 2微軟企業(yè)庫 2 2 3三層應用程序模型 2 2 4信息安全性 3 3網(wǎng)上圖書銷售系統(tǒng)規(guī)劃設計 3 3 1需求分析 3 3 2系統(tǒng)基本結(jié)構(gòu) 4 3 3系統(tǒng)設計 4 3 3 1系統(tǒng)模塊設計 4 3 3 2數(shù)據(jù)庫設計 5 4網(wǎng)上圖書銷售系統(tǒng)開發(fā)實現(xiàn) 9 4 1用戶功能模塊實現(xiàn) 9 4 1 1用戶注冊登錄 9 4 1 2圖書瀏覽 13 4 1 3圖書顯示 14 4 1 4圖書搜索 15 4 1 5收藏夾 15 4 1 6購物車 15 4 1 7圖書訂單 19 4 2管理員功能模塊實現(xiàn) 20 4 2 1圖書管理 20 4 2 2分類信息管理 23 4 2 3出版商信息管理 24 4 2 4用戶信息管理 25 4 2 5訂單管理 25 結(jié) 論 26 參考文獻 26 致 謝 27 聲 明 28 第 1 頁 共 28 頁 1 1 引言引言 1 11 1 課題背景課題背景 隨著 Internet 的迅速崛起 網(wǎng)絡信息化的發(fā)展 在線圖書銷售作為一種典型 的 Web 電子商務系統(tǒng)也迅速的發(fā)展并深入人們的日常生活中 更多的人更愿意 足不出戶就可以挑選購買自己喜歡的各種書籍 這樣大大縮短了購書的時間 提高了效率 而且 圖書因其具有標識精晰 規(guī)格統(tǒng)一 特征容易描述 同種商 品個體之間無差異等特性而能成為發(fā)展電子商務的最為理想的商品類型 可見 網(wǎng)上圖書銷售系統(tǒng)跨越了時間和空間的限制 給商業(yè)流通領域帶來了不一樣的 變革 也給消費者帶來了便捷 只要網(wǎng)絡發(fā)展沒有停止 網(wǎng)上圖書銷售的發(fā)展 就不會停止 1 21 2 本課題研究本課題研究內(nèi)容內(nèi)容 本系統(tǒng)采用 B S Browser Server 結(jié)構(gòu)進行設計 使用 SQL Server 2000 構(gòu)建數(shù)據(jù)庫 并在 NET 環(huán)境下使用 Visual C net 語言開發(fā)的一個功能完善的網(wǎng) 上圖書銷售系統(tǒng) 其具有一定的實用性 用戶可以在網(wǎng)上瀏覽圖書信息 查找圖 書資料 將感興趣的書籍加入收藏夾 或放入購物車并下訂單購買 同時 管理員 也可以對整個系統(tǒng)的信息和數(shù)據(jù)進行管理 可以管理庫存書信息 分類信息 出 版社信息 用戶信息和訂單信息 1 31 3 本課題研究的意義本課題研究的意義 本課題的目標就是是將圖書銷售由傳統(tǒng)的商店模式向在線銷售的轉(zhuǎn)變 同時 還對銷售的定單和圖書的種類等信息進行在線管理 其意義就在于以此來實現(xiàn) 人們不出門就能夠便捷的買到自己喜歡的各種書籍 向客戶展示出一種新穎的 購書理念 網(wǎng)上購書的方式必將日趨被大家所接受 2 2網(wǎng)上圖書銷售系統(tǒng)相關技術網(wǎng)上圖書銷售系統(tǒng)相關技術 2 12 1 NET 開發(fā)平臺及開發(fā)平臺及 C NET 開發(fā)語言開發(fā)語言 NET 框架是 Microsoft 公司推出的一種全新的開發(fā)平臺 提供了統(tǒng)一的 面 向?qū)ο蟛⑶铱梢詳U展的編程類庫和完善的集成開發(fā)環(huán)境 大大簡化了應用程序的 開發(fā)過程 并且具有良好的移植性和安全性 ASP NET 是建立在公共語言運行 庫上的 Web 編程框架 相對于 ASP 而言 ASP NET 提供了更強的性能 更方 便的工具支持 更好的平臺支持和靈活性 其一大革命性進步是可以將應用程 序邏輯與表示代碼清楚地分開 這樣一來 Web 應用程序的開發(fā)人員可以使用和 Windows 桌面程序開發(fā)類似的編程模型 從而大大降低了開發(fā)難度 同時 ASP NET 在進行用戶界面開發(fā)和基礎程序結(jié)構(gòu)生成時具有很多優(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ā)人員能夠編寫應用程序的運行邏輯 并且保留了會話狀態(tài)功能 最后 NET 框架和 ASP NET 中提供了默認授權(quán)和 驗證方案 可以根據(jù)需要方便地移除 添加或者替換這些方案 Visual C NET 語言是 NET 平臺首推的開發(fā)語言 是一種全新的 面向?qū)?象的編程語言 C 語言從 C 語言發(fā)展而來 它同時吸取了 C C 和 Java 語 言的優(yōu)點 可以快速地編寫各種基于 Microsoft NET 平臺的應用程序 C 語言 使開發(fā)者用更少的代碼做更多的事 同時也不易出錯 提高了編程效率和安全 性 2 22 2 微軟企業(yè)庫微軟企業(yè)庫 眾所周知 重復編寫數(shù)據(jù)訪問的代碼是十分繁瑣的 實際上很多系統(tǒng)中都 會有類似的模塊 比如配置的保存和讀取 寫日志 異常的處理等 大多數(shù)情 況下開發(fā)人員需要在每個系統(tǒng)中編寫具有類似功能的子模塊 因此雖然它們之 間只存在細微的區(qū)別 但是代碼必須做修改才能夠滿足要求 微軟公司提供的 企業(yè)庫正是為了解決這些問題而推出的 開發(fā)人員無需修改代碼 只要修改幾 個配置文件 就可以在不同的系統(tǒng)中實現(xiàn)類似的功能 可見 企業(yè)庫大大減少 了系統(tǒng)連接數(shù)據(jù)庫的代碼 帶來了方便 企業(yè)庫 EnterpriseLibraryJune2005 是微軟推出的開源項目 它為企業(yè)級開 發(fā)提供了功能強大的多個應用程序塊 該企業(yè)庫的設計思想是為了協(xié)助開發(fā)商 解決企業(yè)級應用開發(fā)過程中所面臨的一系列共性的問題 如安全 日志 數(shù)據(jù) 訪問 配置管理等 并將這些廣泛使用的應用程序塊集成封裝至企業(yè)庫的程序 包中 企業(yè)庫由七個子模塊組成 分別是配置管理應用程序塊 Configuration Application Block 數(shù)據(jù)訪問應用程序塊 Data Access Application Block 安 全應用程序塊 Security Application Block 日志及儀表盤管理應用程序塊 Logging and Instrumentation Application Block 加密應用程序塊 Cryptography Application Block 異常處理應用程序塊 Exception Handling Application Block 緩存應用程序塊 Caching Application Block 這七個應用 程序塊幾乎覆蓋了企業(yè)級架構(gòu)開發(fā)的核心環(huán)節(jié) 可見 企業(yè)庫具有可選擇 可 擴展 實用 強大 易用性和規(guī)范性等特性 2 32 3 三層應用程序模型三層應用程序模型 本課題在系統(tǒng)設計上采用了三層應用程序模型 所謂的 三層應用程序模 第 3 頁 共 28 頁 型 是將系統(tǒng)按照功能的邏輯層次進行劃分的 分別是表示層 業(yè)務邏輯層和 數(shù)據(jù)訪問層 以此實現(xiàn)模塊化的設計 數(shù)據(jù)訪問層顧名思義是用來處理系統(tǒng)對 數(shù)據(jù)庫的操作 系統(tǒng)中所有數(shù)據(jù)庫的調(diào)用都通過數(shù)據(jù)訪問層實現(xiàn) 業(yè)務邏輯層 處于表示層和數(shù)據(jù)訪問層之間 它一方面調(diào)用數(shù)據(jù)訪問層的類和方法實現(xiàn)系統(tǒng) 中的業(yè)務規(guī)則 一方面封裝相應的調(diào)用方法供表示層調(diào)用 表示層主要包括了 系統(tǒng)的頁面呈現(xiàn)和相關控件的代碼 這種多層的應用程序體系結(jié)構(gòu)具有以下一些優(yōu)點 首先 程序代碼在各個 層次之間實現(xiàn)松耦合和模塊化 其次 每個層次的代碼可重用 維護性更好 最后 可以將各個層次在物理上部署到多個層次中 實現(xiàn)部署的可擴展性 2 42 4 信息安全性信息安全性 在大多數(shù)系統(tǒng)中 用戶的密碼信息在數(shù)據(jù)庫中是以明文的方式存放的 數(shù) 據(jù)庫管理員稍有疏忽就有可能導致用戶的隱私泄漏 尤其是對于一些涉及金融 商業(yè)領域的網(wǎng)絡應用 這一點漏洞將會導致十分嚴重的后果 所以 為了加強 本系統(tǒng)信息的安全性 在用戶登錄模塊中 對密碼這樣的敏感信息進行加密是 十分必要的 本課題使用了一種常見的哈希加密算法 MD5 加密算法 MD5 加密算法是不可逆的 經(jīng)過哈希加密的數(shù)據(jù)是沒有相應的解密算法回到原狀的 在應用中是通過比較兩個數(shù)據(jù)的哈希值是否相等 從而達到校驗的目的 本課 題中 在新客戶注冊的時候 對客戶設置的登錄密碼用 MD5 加密算法進行加密 那么存入數(shù)據(jù)庫的將是客戶登錄密碼的 MD5 哈希值 在登錄驗證時根據(jù)用戶輸 入的密碼計算響應的 MD5 哈希值進行比較 可見 通過 MD5 算法實現(xiàn)了數(shù)據(jù)的加密存儲和驗證 同時 MD5 加密是 不可逆的 即使惡意攻擊者獲得了數(shù)據(jù)庫的訪問權(quán)限 也仍然無法得知用戶的 密碼信息 從而提高了系統(tǒng)的安全性 3 3網(wǎng)上圖書銷售系統(tǒng)規(guī)劃設計網(wǎng)上圖書銷售系統(tǒng)規(guī)劃設計 3 13 1 需求分析需求分析 網(wǎng)上圖書銷售系統(tǒng)首先應該方便用戶瀏覽 購買圖書 同時需要由系統(tǒng)管 理員進行管理和維護 由此分為前臺用戶功能和后臺管理員功能兩個方面 前臺用戶功能 為了方便用戶購買圖書 網(wǎng)上圖書銷售系統(tǒng)應該提供以下幾種用戶功能 1 用戶注冊登錄 用戶進行注冊 登錄 2 圖書瀏覽 以列表方式顯示圖書信息供用戶瀏覽 3 圖書顯示 顯示圖書的詳細信息 4 圖書搜索 使用搜索功能使用戶快速地找到所喜歡的圖書 第 4 頁 共 28 頁 5 收藏夾 用戶可以先將自己感興趣的圖書收藏起來 以便下次登錄后查 看相關信息 如果打算購買時再放入購物車中 6 購物車 這是網(wǎng)上圖書銷售系統(tǒng)的基本元素 用戶找到所喜歡的圖書時 可以將其放入購物車中 再繼續(xù)查看其它圖書 7 圖書訂單 用戶下訂單購買圖書 由管理員定期負責處理 根據(jù)訂單信 息向用戶送貨 后臺管理員功能 管理員負責維護整個系統(tǒng)的運行 管理系統(tǒng)所有的信息和數(shù)據(jù) 應該提供 以下功能 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 服務器及數(shù)據(jù)庫服務器的 B S 結(jié)構(gòu)進行設計 基本結(jié)構(gòu)如圖 2 1 所示 圖 3 1 系統(tǒng)基本結(jié)構(gòu) 利用 IIS 架構(gòu) Web 服務器 用于連接客戶端和數(shù)據(jù)庫服務器 對于客戶端 發(fā)出的需要對數(shù)據(jù)庫進行訪問的請求 Web 服務器負責客戶端與數(shù)據(jù)庫服務器 的網(wǎng)絡通信 并將相關數(shù)據(jù)嵌入返回給客戶端的 Web 頁面 對于客戶端發(fā)出的 不需要對數(shù)據(jù)庫進行訪問的請求 Web 服務器將直接處理這些請求 并將最終 生成的 Web 頁面發(fā)往客戶端瀏覽器 3 33 3 系統(tǒng)設計系統(tǒng)設計 3 3 13 3 1 系統(tǒng)模塊設計系統(tǒng)模塊設計 分為用戶功能模塊設計和管理員功能模塊設計兩方面 用戶登錄后 可以 進行圖書瀏覽 下訂單等操作 管理員登錄后 可以進行圖書管理 分類信息 管理 出版商信息管理 用戶信息管理和訂單管理等操作 1 用戶功能模塊設計 普通用戶的各個功能模塊 具體設計如圖 3 2 所示 第 5 頁 共 28 頁 用用戶戶功功能能模模塊塊 圖書搜索收藏夾購物車圖書訂單 用戶注 冊登錄 圖書瀏覽圖書顯示 圖 3 2 用戶功能模塊 2 管理員功能模塊設計 管理員負責管理整個系統(tǒng)所有的信息和數(shù)據(jù) 并做相應的一些處理 其功 能模塊如圖 3 3 所示 管管理理員員功功能能模模塊塊 庫存書的 信息管理 分類信息 管理 用戶信息 查詢 處理訂單 出版商信 息管理 圖 3 3 管理員功能模塊 3 3 23 3 2 數(shù)據(jù)庫設計數(shù)據(jù)庫設計 數(shù)據(jù)庫主要由 9 個數(shù)據(jù)表組成 Books 圖書信息表 Items 圖書項信 息表 Categories 圖書分類信息表 存儲圖書的分類信息 ItemCategory 圖書項與分類關聯(lián)信息表 Publishers 出版商信息表 存儲出 版商信息 Customers 客戶信息表 存儲用戶注冊信息 Favorites 收藏夾信 息表 存儲用戶的收藏夾信息 Orders 訂單信息表 存儲訂單的各項信息 OrderItems 訂單項信息表 存儲訂單具體的購買信息 從而 可詳細設計出各 數(shù)據(jù)庫對象 包括數(shù)據(jù)表和存儲過程 數(shù)據(jù)表 第 6 頁 共 28 頁 圖書相關信息表分別如表 3 1 表 3 2 表 3 3 表 3 4 表 3 5 所示 表 3 1 圖書信息表 Books Books ItemId 為主鍵 PublisherId 為外鍵 列 屬性 名中文名稱類型寬度是否允許為空 ItemId 圖書項 ID 號 int4NOT NULL PublisherId 出版商 ID 號 int4NOT NULL Author 作者名 nvarchar40NOT NULL ISBN ISBN 號 char10NOT NULL SaleNum 已銷售數(shù)量 int4NOT NULL 表 3 2 圖書項信息表 Items Items PKId 為主鍵 列 屬性 名中文名稱類型寬度是否允許為空 PKId 圖書項唯一 ID int4NOT NULL Name 書名 nvarchar255NOT NULL ImageFileSpace 圖書封面圖文件地址 nvarchar255NULL Description 說明 nvarchar2000NULL UnitPrice 單價 Momey8NOT NULL 表 3 3 圖書分類信息表 Categories Categories PKId 為主鍵 列 屬性 名中文名稱類型寬度是否允許為空 PKId 分類唯一 ID int4NOT NULL Description 分類說明 nvarchar255NULL 表 3 4 圖書項與分類關聯(lián)信息表 ItemCategory ItemCategory ItemId 為主鍵 CategoryId 為外鍵 列 屬性 名中文名稱類型寬度是否允許為空 ItemId 圖書項 ID 號 int4NOT NULL CategoryId 分類 ID 號 int4NOT NULL 表 3 5 出版商信息表 Publishers Publishers PKId 為主鍵 列 屬性 名中文名稱類型寬度是否允許為空 PKId 出版商唯一 ID int4NOT NULL Name 出版商名稱 nvarchar40NOT NULL 用戶相關信息表分別如表 3 6 表 3 7 所示 表 3 6 客戶信息表 Customers Customers PKId 為主鍵 列 屬性 名中文名稱類型寬度是否允許為空 PKId 客戶唯一 ID int4NOT NULL Email 客戶 Email nvarchar50NOT NULL Password 客戶登錄密碼 binary24NULL Name 客戶名稱 nvarchar40NULL 表 3 7 收藏夾信息表 Favorites 第 7 頁 共 28 頁 Favorites PKId 為主鍵 CustomerId ItemId 為外鍵 列 屬性 名中文名稱類型寬度是否允許為空 PKId 收藏夾 ID 號 int4NOT NULL CustomerId 客戶 ID 號 int4NOT NULL ItemId 圖書項 ID 號 Int4NOT NULL 訂單相關信息表分別如表 3 8 表 3 9 所示 表 3 8 訂單信息表 Orders Orders PKId 為主鍵 CustomerId 為外鍵 列 屬性 名中文名稱類型寬度是否允許為空 PKId 訂單唯一 ID int4NOT NULL CustomerId 客戶 ID 號 int4NULL Status 訂單狀態(tài) int4NULL OrderData 訂單生成日期 datetime8NULL ShipToName 收件人名稱 nvarchar40NULL ShipToAddress 送貨地址 nvarchar255NOT NULL SubTotal 總價 Momey8NULL 表 3 9 訂單項信息表 OrderItems OrderItems OrderId 和 ItemId 為主鍵 列 屬性 名中文名稱類型寬度是否允許為空 OrderId 訂單 ID 號 int4NOT NULL ItemId 圖書項 ID 號 int4NOT NULL UnitPrice 單價 money8NOT NULL Quantity 購買數(shù)量 Int4NOT NULL 存儲過程 因為存儲過程可以在程序中被多次調(diào)用 而不必多次重復編寫該存儲過程 的 SQL 語句 所以數(shù)據(jù)庫中建立了大量的存儲過程 便于將相關信息加入到數(shù) 據(jù)庫中 與客戶相關的存儲過程有 新客戶注冊 CustomerRegister 客戶登錄 CustomerLogin 修改客戶信息 EditCustomer 獲取所有客戶的信息 GetCustomers 獲取單個用戶的信息 GetCustomerById 與圖書相關的存儲過程有 新增圖書 AddBook 刪除圖書 DelBook 修改圖書信息 EditBook 獲取所有圖書信息 GetAllBooks 根據(jù)圖書項 ID 獲取單本圖書信息 GetBookById 根據(jù)分類 ID 獲取圖書信息 GetBooksByCategoryId 根據(jù)分類 ID 獲取熱門書圖書信息 GetPopBooksByCategoryId 根據(jù)書名獲取圖書信息 GetBooksByTitle 根 據(jù)關鍵詞獲取圖書信息 GetBooksByKeyword 根據(jù) ISBN 獲取圖書信息 GetBooksByISBN 根據(jù)出版商獲取圖書信息 GetBooksByPublisherId 根 據(jù)作者獲取圖書信息 GetBooksByAuthor 第 8 頁 共 28 頁 與出版商相關的存儲過程有 新增出版商 AddPublisher 刪除出版商 DelPublisher 修改出版商信息 EditPublisher 獲取所有出版商信息 GetPublishers 與圖書分類相關的存儲過程有 新增圖書分類 AddCategory 刪除圖書 分類 DelCategory 修改圖書分類說明 EditCategory 獲取圖書分類信息 GetCategories 與收藏夾相關的存儲過程有 新增收藏記錄 AddFavorite 刪除收藏信息 DelFavorite 根據(jù)客戶 ID 獲取收藏記錄 GetFavoritesByCustomerId 與訂單相關的存儲過程有 獲取訂單信息 GetOrders 獲取單條訂單信 息 GetOrderById 根據(jù)客戶 ID 獲取訂單信息 GetOrdersByCustomerId 根 據(jù)狀態(tài)獲取訂單信息 GetOrdersByStatus 根據(jù)日期獲取訂單信息 GetOrdersByDate 提交訂單 SubmitOrder 修改訂單 EditOrder 取消 訂單 CancelOrder 接受訂單 AcceptOrder 確定訂單 ConfirmOrder 撤 銷訂單 RevokeOrder PopFirstWord 插入訂單明細記錄 InsertOrderDetailsByList 插入單條訂單項 InsertOrderDetail 由于該系統(tǒng)建立的存儲過程很多 所以在此就只列舉出一個存儲過程的 SQL 腳本 新增圖書存儲過程 AddBook 的 SQL 腳本如下 CREATE PROCEDURE AddBook Name NVARCHAR 255 ImageFileSpace NVARCHAR 255 Description NVARCHAR 2000 UnitPrice MONEY PublisherId INT Author NVARCHAR 40 ISBN NCHAR 13 CategoryId INT ItemId INT NULL OUTPUT output 可以返回一個值 AS begin tran 事務 新增 Items 表記錄 insert Items Name ImageFileSpace Description UnitPrice select Name ImageFileSpace Description UnitPrice select ItemId IDENTITY 獲取數(shù)據(jù)表中最后一條插入數(shù)據(jù)的 IDENTITY 值 第 9 頁 共 28 頁 新增 Books 表記錄 insert Books ItemId PublisherId Author ISBN select ItemId PublisherId Author ISBN 新增 ItemCategory 表記錄 insert ItemCategory ItemId CategoryId select ItemId CategoryId commit tran return 0 GO 4 4網(wǎng)上圖書銷售系統(tǒng)開發(fā)實現(xiàn)網(wǎng)上圖書銷售系統(tǒng)開發(fā)實現(xiàn) 4 14 1 用戶功能模塊實現(xiàn)用戶功能模塊實現(xiàn) 用戶功能模塊主要包括注冊登錄 圖書瀏覽 圖書顯示 圖書搜索 購物 車 收藏夾 圖書訂單這幾個部分 在程序設計中 各模塊后臺編碼部分的設 計實現(xiàn)是重點和難點 因此論文將著重說明模塊的后臺編碼部分 對于頁面設 計部分只作了簡單說明 4 1 14 1 1 用戶注冊登錄用戶注冊登錄 用戶首先填寫相關信息進行注冊 之后就可以登錄到本系統(tǒng)中購買圖書 注冊模塊的主要功能是把用戶的注冊信息寫到數(shù)據(jù)庫中 同時 為了減少 用戶輸入錯誤 注冊模塊需要對相關信息作必要的驗證 利用 ASP NET 提供的 驗證控件可以方便的驗證用戶輸入 這里將幾個驗證控件結(jié)合起來實現(xiàn)比較完 整的驗證功能 在注冊頁面設計中 使用 RequiredFieldValidator 控件檢查用戶 是否在輸入框中填寫了必要的文字 確保用戶不跳過輸入 使用 RegularExpressionValidator 控件檢查輸入是否符合正則表達式 使用 CompareValidator 控件對比兩次密碼輸入是否相同 部分代碼如下 Email 密碼 第 10 頁 共 28 頁 重復輸入密碼 用戶注冊頁面設計如圖 4 1 所示 圖 4 1 用戶注冊頁面 用戶輸入相應信息后 單擊 注冊 按鈕 可將用戶信息插入到數(shù)據(jù)庫中 的 Customers 數(shù)據(jù)表中 該功能由單擊事件處理函數(shù) btnRegister Click 來實 現(xiàn) 部分程序代碼如下 private void btnRegister Click object sender System EventArgs e if CustomerSystem Register tbEmail Text tbUserName Text tbPassword Text lblMessage Visible true lblMessage Text SUCCESS MESSAGE ltLink Visible true ltLink Text LINK STRING else lblMessage Visible true lblMessage Text ERR MESSAGE 程序中調(diào)用了業(yè)務邏輯層的 CustomerSystem Register 來實現(xiàn)將注冊信 息添加到數(shù)據(jù)庫中去 其中針對用戶設置的密碼是先通過 MD5 加密算法加密后 再添加到數(shù)據(jù)庫中去的 CustomerSystem Register 類的代碼如下 public static bool Register string strEmail string strName string strPassword int iRet 1 try 第 11 頁 共 28 頁 MD5 md5 MD5 Create MD5加密算法 byte btPassword md5 ComputeHash Encoding Unicode GetBytes strPassword Customer c new Customer strEmail btPassword strName iRet customers CustomerRegister c catch Exception ex bool rethrow ExceptionPolicy HandleException ex Logging Policy if rethrow throw return iRet 0 程序中又定義了 Common 命名空間中的公共類 Customer 的對象 還調(diào)用了 數(shù)據(jù)訪問層 DataAcess 中的 CustomerRegister 方法 以此通過微軟企業(yè)庫連接 數(shù)據(jù)庫中的用戶注冊存儲過程 CustomerRegister Customer 類的代碼如下 public class Customer public Customer string strEmail byte btPassword string strName email strEmail password btPassword name strName private string email private byte password private string name public string Email get return email set email value public byte Password get return password set password value public string Name get return name set name value 第 12 頁 共 28 頁 CustomerRegister 的代碼如下 public int CustomerRegister Customer c string sqlCommand CustomerRegister 為執(zhí)行存儲過程進行準備 參數(shù)賦值 DBCommandWrapper dbCommandWrapper db GetStoredProcCommandWrapper sqlCommand dbCommandWrapper AddInParameter Email DbType String c Email dbCommandWrapper AddInParameter Password DbType Binary c Password dbCommandWrapper AddInParameter Name DbType String c Name dbCommandWrapper AddParameter RETURN VALUE DbType Int32 ParameterDirection ReturnValue return DataRowVersion Default null db ExecuteNonQuery dbCommandWrapper 執(zhí)行存儲過程 return int dbCommandWrapper GetParameterValue RETURN VALUE 在數(shù)據(jù)庫設計中 用戶注冊 Email 地址是關鍵 它的值是唯一的 不能重 復 如果重復 企業(yè)庫和數(shù)據(jù)庫就會拋出異常 并且終止執(zhí)行 SQL 語句 根據(jù) 數(shù)據(jù)庫是否產(chǎn)生異常及異常的代碼 就可以較好的實現(xiàn)模塊功能 并且給用戶 顯示友好的提示信息 用戶注冊后 在登錄頁面輸入 Email 和密碼可以登錄到系統(tǒng)中 登錄頁面 如圖 4 2 所示 圖 4 2 登錄頁面 登錄模塊驗證程序根據(jù)數(shù)據(jù)庫中已有的注冊信息 對客戶端發(fā)送過來的 Email 和密碼進行驗證 判斷該 Email 地址及相應的密碼在數(shù)據(jù)庫中是否存在 進而可進行購買圖書等操作 輸入信息 點擊 登錄 按鈕將執(zhí)行的部分程序 代碼如下 private void btnLogin Click object sender System EventArgs e int iRet CustomerSystem Login Email Password if Email huangjun999 通過session驗證管理員 Response Redirect admin Default aspx 進入管理員頁面 else 第 13 頁 共 28 頁 if iRet 0 FormsAuthentication RedirectFromLoginPage iRet ToString false 重定向 else lblMessage Visible true lblMessage Text LOGIN FAIL MESSAGE 如果 Email 為 huangjun999 并且 Password 為 admin 就進入后 臺管理員頁面 其它用戶成功登錄后則進入前臺圖書銷售頁面 4 1 24 1 2 圖書瀏覽圖書瀏覽 圖書瀏覽使用 2 種方式實現(xiàn) 分類瀏覽和熱門書推薦 頁面設計中 兩種 方式都使用了 ASP NET 中的 DataList 控件來綁定數(shù)據(jù) 以列表方式顯示 因為 datalist 自定義模塊比 datagrid 更能夠顯示豐富多變的數(shù)據(jù)列表 分類瀏覽和熱門書推薦的實現(xiàn)都差不多 唯一的差異就是熱門書推薦部分 只顯示銷售量前 4 的圖書 分類瀏覽圖書頁面的執(zhí)行結(jié)果如圖 4 3 所示 當用戶點擊相關類別鏈接時 就可以實現(xiàn)分類瀏覽 這些鏈接包含查詢字 符串 在 Web 服務器中通過解析這些字符串來確定用戶所點擊的鏈接 當點擊 藝術 鏈接時 頁面上半部分顯示熱門書推薦 下半部分顯示全部圖書列表 顯示結(jié)果如圖 4 4 所示 圖 4 3 分類瀏覽頁面 圖 4 4 分類瀏覽顯示結(jié)果 在分類瀏覽頁面 Category aspx 的實現(xiàn)過程中 收藏夾 按鈕只有在用戶 登錄的情況下才顯示 在 DataList 控件里 ItemCreate 事件的相應函數(shù)中添加了 相應的代碼進行判斷 其后臺的部分代碼如下 第 14 頁 共 28 頁 private void dlBook ItemCreated object sender System Web UI WebControls DataListItemEventArgs e DataList ItemCreated 當在 DataList 控件中創(chuàng)建項時在服務器上發(fā)生 ImageButton ib e Item FindControl ibFavorite as ImageButton if ib null ib Visible ucHeader IsLogin dlBook ItemCommand 當單擊 DataList 控件中的任一按鈕時發(fā)生 private void dlBook ItemCommand object 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 AddFavorite f 0 Response Redirect Favorite aspx else Response Write ADD FAVORITE FAIL else if e CommandName AddCart int iItemId Convert ToInt32 e CommandArgument BookCart SetItem iItemId Response Redirect ShoppingCart aspx 4 1 34 1 3 圖書顯示圖書顯示 顯示圖書詳細信息 書名 作者 價格 出版商 ISBN 等信息 通過 DataList 控件來實現(xiàn)數(shù)據(jù)綁定 同時提供 購物車 和 收藏夾 鏈接 用于 將圖書加入購物車或收藏夾 點擊圖書封面圖片 如 蓮花 會顯示圖書相關信息 如圖 4 5 所示 圖 4 5 圖書詳細信息顯示頁面 如果喜歡該本書 可以通過點擊 購物車 或 收藏夾 鏈接 將當前圖 第 15 頁 共 28 頁 書加入購物車或收藏夾 4 1 44 1 4 圖書搜索圖書搜索 用戶點擊 查找 按鈕 可以對圖書進行快速搜索 該功能也是通過一個 DataList 控件來實現(xiàn)的 圖書搜索方式使用控件標識定義 分別為書名 作者 ISBN 和關鍵詞 然后由用戶輸入搜索條件 程序便執(zhí)行數(shù) 據(jù)庫中的存儲工程在數(shù)據(jù)表中查找數(shù)據(jù)并顯示出來 如果方式選擇作者 輸入 條件為 安妮 搜索結(jié)果如圖 3 6 所示 圖 4 6 圖書搜索結(jié)果顯示 4 1 54 1 5 收藏夾收藏夾 用戶收藏夾存儲書名 價格等信息 該頁面的實現(xiàn)還是通過使用 DataList 控件來顯示用戶收藏的圖書 收藏夾頁面執(zhí)行結(jié)果如圖 3 7 所示 圖 4 7 收藏夾頁面 用戶點擊 收藏夾 鏈接 可以先將自己感興趣的圖書放入圖書收藏夾 如果打算購買再從收藏夾中加入購物車 同時也提供了 刪除 按鈕 如果不 喜歡收藏夾的部分圖書 可以點擊 刪除 按鈕刪除收藏的圖書 4 1 64 1 6 購物車購物車 購物車是本系統(tǒng)的重要組成部分 這部分的設計是重點和難點 在本系統(tǒng) 了主要實現(xiàn)了兩個基本功能 用戶添加圖書 即用戶將打算購買的圖書添加到 購物車中 和用戶管理自己的訂單 即用戶可以隨時查看購物車 更新購物車 中的圖書數(shù)量 或者刪除不想購買的圖書 購物車利用 DataGrid 控件來顯示用戶所選擇的圖書書名 單價 數(shù)量以及 總價格等信息 在 DataGrid 中主要使用了模板列 TemplateColumn 進行顯示和 處理 模板列包括數(shù)量 Quantity 書名 Title 單價 UnitPrice 和小計 Price 其中 用戶只可對圖書數(shù)量進行修改 第 16 頁 共 28 頁 購物車的內(nèi)容通過 Session 對象來保存 因為會話狀態(tài) Session 可以在會話 期間為用戶提供單獨的數(shù)據(jù) 不同會話之間的信息是不共享的 其實現(xiàn)的代碼 如下 public Cart BookCart 通過Session對象保存購物車內(nèi)容 get if Session Cart null Session Cart new Cart return Cart Session Cart set Session Cart value 程序中使用 Page Load 調(diào)用 BindGrid 函數(shù)將購物車中的圖書信息 綁定到 DataGrid 中 BindGrid 實現(xiàn)數(shù)據(jù)綁定 通過使用大小可按需動態(tài)增加的數(shù)組 ArrayList 來記錄圖書項的 ID 和購買數(shù)量 然后計算購買圖書的總價格 其代 碼如下 private void BindGrid decimal totalprice 0 BookData bookdata new BookData bookdata Tables Books Columns Add Quantity typeof System Int32 bookdata Tables Books Columns Add Price typeof System Decimal for int i 0 i BookCart Count i 通過數(shù)組來實現(xiàn)計算總價格 int iItemId BookCart GetItemId i int iQuantity BookCart GetQuantity i BookData tempdata BookSystem SearchBooks BookSearchType PKId iItemId ToString bookdata Tables Books ImportRow tempdata Tables Books Rows 0 bookdata Tables Books Rows i Quantity iQuantity decimal unitprice Convert ToDecimal tempdata Tables Books Rows 0 UnitPrice bookdata Tables Books Rows i Price iQuantity unitprice 每項書 的總價錢 小計 數(shù)量 單價 totalprice iQuantity unitprice 總價格 bookdata AcceptChanges 第 17 頁 共 28 頁 dgCart DataSource bookdata dgCart DataBind lblTotal Text string Format 總價 0 totalprice 其中 BooCart 是購物車對象 Cart 的一個實例 Cart 類保存了多組圖書項 ID 和購物數(shù)量的值 并且根據(jù)應用的需要實現(xiàn)了 GetItemID GetQuantity SetItem Clear 等方法 部分代碼如下 private ArrayList itemid arr private ArrayList quantity arr public int Count get return itemid arr Count public int GetItemId int index 獲取圖書項ID if index Count return int itemid arr index else return 1 public int GetQuantity int index 獲取各類圖書的數(shù)量 if index 0 quantity arr index 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 sende
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電纜井施工考核試卷
- 纖維素纖維在食品包裝材料中的應用考核試卷
- 罐頭食品生產(chǎn)過程中的食品安全風險評估考核試卷
- 照明器具的熱管理技術研究考核試卷
- 文化遺產(chǎn)保護與可持續(xù)旅游考核試卷
- 罐頭食品企業(yè)人力資源規(guī)劃與招聘策略考核試卷
- 木地板企業(yè)全面質(zhì)量管理與持續(xù)改進考核試卷
- 電氣設備電力系統(tǒng)綜合自動化考核試卷
- 綠色編織工藝在環(huán)保生活用品考核試卷
- 婚姻穩(wěn)定保障協(xié)議書:忠誠與責任承擔
- 傳統(tǒng)園林技藝智慧樹知到期末考試答案章節(jié)答案2024年華南農(nóng)業(yè)大學
- 蘇教版四年級數(shù)學下冊確定位置
- 公司基本情況介紹
- 異步電機矢量控制系統(tǒng)設計
- GB/T 29602-2013固體飲料
- 食品中天然有毒物質(zhì)與食品安全精課件
- 小學統(tǒng)編版道德與法治一年級下冊教材分析解讀課件
- 信息經(jīng)濟學-信號傳遞:斯賓塞勞動市場模型課件
- 創(chuàng)傷急救-止血、包扎課件
- 豬肉品質(zhì)及其營養(yǎng)調(diào)控
- 小學數(shù)學 西南師大版 四年級下冊 小數(shù)的加法和減法部優(yōu)課件
評論
0/150
提交評論