




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
上海應(yīng)用技術(shù)大學(xué)計(jì)算機(jī)科學(xué)與信息工程學(xué)院畢業(yè)設(shè)計(jì)上海欣北商貿(mào)有限公司網(wǎng)上家電商店的設(shè)計(jì)與開發(fā)摘要:全球互聯(lián)網(wǎng)自九十年代大規(guī)模中期的業(yè)務(wù)已40年的快速發(fā)展,已成為世界上重要的信息基礎(chǔ)設(shè)施,推動(dòng)經(jīng)濟(jì)全球化和人類社會(huì)的社會(huì)進(jìn)步的命運(yùn)。同時(shí),在中國的互聯(lián)網(wǎng)的發(fā)展速度也一直居高不下,藉由電子設(shè)備、網(wǎng)絡(luò)技術(shù)和移動(dòng)互聯(lián)網(wǎng)的迅速拓展,我國也憑借網(wǎng)絡(luò)電子商務(wù)推動(dòng)了巨額的經(jīng)濟(jì)提升。隨著本系統(tǒng)的ASP(ActiveServerPages的)技術(shù),采用C#語言,借助SQLServer數(shù)據(jù)庫作為后臺數(shù)據(jù)庫,從實(shí)踐中來研究電子商務(wù)的開發(fā)。本系統(tǒng)基本遵循了軟件工程方法論,首先對系統(tǒng)進(jìn)行分析,然后從總體部分進(jìn)行設(shè)計(jì)并詳細(xì)描述了設(shè)計(jì)與實(shí)現(xiàn)的緊密配合,改進(jìn)了系統(tǒng)的實(shí)現(xiàn),最后進(jìn)行了軟件測試。最終結(jié)果即實(shí)現(xiàn)了管理人員和注冊的會(huì)員兩大用戶角色的基本需求。同時(shí),在結(jié)構(gòu)中使用了標(biāo)準(zhǔn)的三層體系結(jié)構(gòu)開發(fā)模式,即表示層(UI),業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL),以使其更好由兩個(gè)主要用戶使用。關(guān)鍵詞:ASP技術(shù);C#;SQLServer;電子商務(wù);網(wǎng)上商店DesignanddevelopmentofonlinehomeappliancestoreofShanghaiXinbeicommerceandTradeCo.,LtdAbstract:TheglobalInternethasdevelopedrapidlyforabout40yearssinceitwaswidelyusedinbusinessinthe1990s.Ithasbecomeanimportantinformationinfrastructuretopromoteeconomicglobalizationandsocialprogressintheworld.Atthesametime,theInternethasalsobeendevelopedrapidlyinChina.Withtherapiddevelopmentofelectronicequipment,networktechnologyandmobileInternet,Chinahasalsopromotedahugeeconomicimprovementbyvirtueofnetworke-commerce.ThissystemusesASP(activeserverpages)technology,C?programminglanguage,SQLServerdatabaseasbackgrounddatabase,andstudiesthedevelopmentofe-commercefrompractice.Thesystembasicallyfollowsthemethodologyofsoftwareengineering.Firstly,thesystemisanalyzed,thenthesystemisimprovedbythecombinationofoveralldesignanddetaileddesign,andfinallythesoftwareistested.Thefinalresultistorealizethebasicneedsofthetwouserrolesofthemanagerandtheregisteredmember.Atthesametime,thesystemusesthestandardthree-tierarchitecturemodedevelopedbymajorenterprises:theUserInterfaceLayer(UI),theBusinessLogicLayer(BLL)andtheDataAccessLayer(DAL),whichcanbebetterusedbythetwomajorusers.Keywords:ASP;C#;SQLServer;e-commerce;onlinestore目錄TOC\o"1-3"\h\u1緒論 11.1課題的總體概要研究意義 11.2國內(nèi)外課題概況及發(fā)展趨勢 21.3開發(fā)工具簡介 31.3.1C#簡介 31.3.2ASP.NET簡介 31.3.3數(shù)據(jù)庫簡介 51.4開發(fā)架構(gòu)簡介: 61.5系統(tǒng)開發(fā)環(huán)境 71.5.1開發(fā)環(huán)境 71.5.2程序運(yùn)行環(huán)境 72需求分析 2.1系統(tǒng)功能及特性分析 82.2數(shù)據(jù)庫需求分析 82.3系統(tǒng)目標(biāo) 93系統(tǒng)分析 3.1前臺模塊介紹 103.2后臺模塊介紹 113.3模塊的流程圖 133.3.1前臺購物 133.3.2商品類別維護(hù) 133.3.3商品信息維護(hù) 133.3.4訂單信息維護(hù) 143.4根據(jù)表與表之間的關(guān)系可以畫出ER圖 143.5數(shù)據(jù)庫字典 154系統(tǒng)程序?qū)崿F(xiàn) 4.1系統(tǒng)主界面 204.2基本功能模塊 224.2.1用戶注冊 224.2.2購物車 244.2.3訂單信息 284.2.4用戶訂單信息列表 314.2.5商品小類維護(hù) 344.2.6商品信息維護(hù) 364.2.7訂單信息維護(hù) 394.2.8商品銷量排行 414.2.9商品信息查詢 435軟件測試 5.1軟件測試的意義 465.2軟件測試的重要性 465.3軟件測試的方法 476結(jié)論與總結(jié) 致謝 上海欣北商貿(mào)有限公司網(wǎng)上家電商店的設(shè)計(jì)與開發(fā) PAGE10緒論眾所周知,當(dāng)今社會(huì)計(jì)算機(jī)、各種電子相關(guān)設(shè)備及其技術(shù)和頂級互聯(lián)網(wǎng)服務(wù)的快速發(fā)展,使得Internet應(yīng)用在全球范圍內(nèi)廣泛遍及,全世界都正在快速向網(wǎng)絡(luò)全球化前進(jìn)。互聯(lián)網(wǎng)在生活、經(jīng)濟(jì)、商務(wù)、工業(yè)等方方面面中的作用也越來越大阿里巴巴,京東,蘇寧電子商務(wù)和其他電子商務(wù)在線消費(fèi)者購物平臺的發(fā)布不斷涌現(xiàn),過去三十年來,幾乎每個(gè)人的消費(fèi)方式發(fā)生了改頭換面的巨大改變。顯然,線上消費(fèi)已經(jīng)進(jìn)入家家戶戶好似一股浪潮席卷每一個(gè)人,因此藉由這種潮流化的事物來作為一個(gè)課題的研究方向極有意義也很有必要。同時(shí)ASP作為網(wǎng)絡(luò)高速發(fā)展至今的“鼻祖”級的基礎(chǔ)技術(shù),也是我此次課題研究的入手點(diǎn)。課題的總體概要研究意義在線家電商店的設(shè)計(jì)和開發(fā)必須基于對用戶需求的調(diào)查和分析,以此來確定開發(fā)這個(gè)系統(tǒng)的目的和系統(tǒng)開發(fā)出來以后的目標(biāo),在這個(gè)過程中開發(fā)者提出解決問題的詳細(xì)方案,這只是系統(tǒng)獨(dú)特的設(shè)計(jì)和合作開發(fā)經(jīng)驗(yàn)的一小部分。要想使我們這個(gè)網(wǎng)上商店的客戶能方便地高效地使用該系統(tǒng),功能上對系統(tǒng)的要求是全面的,并且將會(huì)具有一定的挑戰(zhàn)性。而利用計(jì)算機(jī)和互聯(lián)網(wǎng)的高效自動(dòng)化處理能力,便可以方便快捷地進(jìn)行用戶或商品的信息共享、交流和操作處理。電子數(shù)據(jù)交換系統(tǒng)(EDI)是指買賣雙方的核心業(yè)務(wù)軟件系統(tǒng)同意的付款標(biāo)準(zhǔn)格式,以及用于傳輸客戶訂單最終數(shù)據(jù)的基本數(shù)據(jù)狀態(tài)標(biāo)準(zhǔn)。1970年代的EDI技術(shù)實(shí)現(xiàn)是各個(gè)行業(yè)中使用更廣泛的技術(shù),如制造業(yè),物流,零售,醫(yī)藥,金融,化工,能源等領(lǐng)域,20世紀(jì)90年代時(shí),在中國大陸廣泛發(fā)展。EDI在20世紀(jì)80-90年代,通過網(wǎng)絡(luò)取代了傳統(tǒng)人工面對面地進(jìn)行文件、資料、書信等信息交換,將文字、圖片、視頻、聲音等內(nèi)容以電子文件的方式進(jìn)行數(shù)據(jù)交換[1]。電子信息領(lǐng)域的全球知名品牌IBM公司在1998年首先提出了“電子商務(wù)”這一名詞并迅速在全球行業(yè)內(nèi)得到大量支持和認(rèn)同。包括廣告、服務(wù)在內(nèi)的電子互聯(lián)網(wǎng)與商業(yè)的有機(jī)結(jié)合,眾多各式各樣的內(nèi)容都逐漸地與“E”、“電子”和其他詞匯被組合在一起,涵蓋過去、現(xiàn)在和未來。幾乎全部的經(jīng)濟(jì)商業(yè)活動(dòng)都有可能會(huì)以電子網(wǎng)絡(luò)的形式展現(xiàn)在世人眼前。隨著時(shí)代和技術(shù)不斷地以一天一個(gè)樣的速度進(jìn)步著,計(jì)算機(jī)、電子設(shè)備及網(wǎng)絡(luò)產(chǎn)品、互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)、安全便捷支付等電子商務(wù)的技術(shù)支持正在電子商務(wù)領(lǐng)域的應(yīng)用大潮中發(fā)生日新月異的變化,這種跨越質(zhì)的變化,也為網(wǎng)絡(luò)在線購物一次次打開新的格局和大門。它不只是帶動(dòng)互聯(lián)網(wǎng)經(jīng)濟(jì)的飛速發(fā)展,更是深入到金融貿(mào)易、全球化挑戰(zhàn)的每一個(gè)角落,深入千家萬戶,改變?nèi)祟惖纳罘绞健⑾M(fèi)習(xí)慣。因此本課題就要從其中一些技術(shù)的基礎(chǔ)層面進(jìn)行討論研究。國內(nèi)進(jìn)入EDI時(shí)代,為中國電子商務(wù)的起步階段奠定了重要基礎(chǔ),既有了技術(shù)又有了條件,我國開始搭上電子商務(wù)的列車。當(dāng)李克強(qiáng)總理在我國第十二次全國人民代表大會(huì)第三次會(huì)議上,將“互聯(lián)網(wǎng)+”上升到戰(zhàn)略層次上,提出了新興產(chǎn)業(yè)和新興業(yè)態(tài)是當(dāng)前我國經(jīng)濟(jì)發(fā)展、社會(huì)進(jìn)步的競爭高地,同時(shí)也是我國新常態(tài)經(jīng)濟(jì)發(fā)展的重要推助力[2]。如今在這樣的時(shí)代浪潮推動(dòng)下,類似于“雙十一”、“新年集福”這樣的大型活動(dòng)正在影響著幾乎每一個(gè)中國人的生活和購物方式,這背后正式源于我國對這種新型經(jīng)濟(jì)結(jié)構(gòu)的支持和互聯(lián)網(wǎng)領(lǐng)域的技術(shù)飛速發(fā)展。所以就這一方面來看,本課題的研究也是在迎合國家政策,順著國家的戰(zhàn)略方向前進(jìn)。國內(nèi)外課題概況及發(fā)展趨勢從1998年易趣在國內(nèi)成立第一家網(wǎng)上購物網(wǎng)站,到互聯(lián)網(wǎng)泡沫經(jīng)濟(jì)退潮后,2003年阿里巴巴旗下淘寶網(wǎng)成立。往后五年,中國網(wǎng)民井噴式的暴漲,全球電子商務(wù)環(huán)境的良化,支付技術(shù)的提升和中國物流業(yè)務(wù)的飛速發(fā)展。到2011年,中國的電子商務(wù)已經(jīng)聚集了當(dāng)當(dāng)網(wǎng),京東網(wǎng),萬科網(wǎng),蘇寧網(wǎng),一號店等在線購物網(wǎng)站,同時(shí)也有諸如亞馬遜這樣的海外企業(yè)入駐中國發(fā)展電子商務(wù)領(lǐng)域。如今來到了互聯(lián)網(wǎng)+時(shí)代,電子商務(wù)網(wǎng)上購物網(wǎng)站的消費(fèi)額已經(jīng)成為人們消費(fèi)額數(shù)據(jù)中十分重要的一部分,2013年到2018年,國內(nèi)網(wǎng)上在線購物的成交金額從2679億元增長至57370億元,復(fù)合上升率84.6%;預(yù)計(jì)2019年,網(wǎng)購交易金額將達(dá)到66610億元。很明顯,網(wǎng)購顯然仍有極大的發(fā)展空間。圖1.12013-2019年中國網(wǎng)購交易金額讓我們討論一下當(dāng)前的技術(shù)狀態(tài)。1996年,Microseinem在Web應(yīng)用程序中引入了此程序,以開發(fā)其技術(shù),即該其他項(xiàng)目中使用的標(biāo)準(zhǔn)。ASP的次要外觀取代了Web服務(wù)端擴(kuò)展和服務(wù)端組擴(kuò)展的普遍標(biāo)準(zhǔn)。ASP和ADO結(jié)合在一起,因此在相關(guān)數(shù)據(jù)庫中創(chuàng)建和打開后很容易快速打開。如果沒有ASP發(fā)布,它將被廣大Windows平臺開發(fā)者所青睞。Microsoft公司隨后又在1998年開發(fā)并發(fā)布了ASP2.0,至此開發(fā)者們可以建立ASP應(yīng)用,使得網(wǎng)站的表現(xiàn)更豐富更動(dòng)態(tài)。可是好景不長,由于ASP技術(shù)不開源、執(zhí)行效率較低等問題,被后來出現(xiàn)的PHP、JAVA等編程語言比了下去。PHP、JAVA明顯更適合中、大型的Web應(yīng)用系統(tǒng)。JAVA至今仍是國內(nèi)最受歡迎的Web編程語言。于是,微軟公司又開發(fā)了ASP.NET技術(shù),重返市場。ASP.NET采用或c#等語言來開發(fā),與之前asp用vbscript不同了。執(zhí)行效率和平臺兼容性方面的優(yōu)點(diǎn)都明顯超越ASP,因此ASP慢慢被其它開發(fā)語言取代了。而ASP.NET也可以向下兼容ASP,所以原來選擇ASP的開發(fā)者轉(zhuǎn)而投入了ASP.NET的懷抱。開發(fā)工具簡介C#簡介A目前支持、VC++net、、C#.net和其他.net語言。所有這些語言在一定程度上支持小型和大型框架使用語言和腳本執(zhí)行。我們做的欣北商貿(mào)有限公司網(wǎng)上家電商店使用C#語言。所以,在這里我首先需要介紹一下C#語言。C#(Csharp)與ASP.NET一樣是Microsoft推出的,于2000年6月發(fā)布。C#是一種運(yùn)行于.NETFramework和.NETCore的簡易的、較為新型的、通用的、面向?qū)ο蟮木幊陶Z言,Microsoft.NET可以讓使用者在任何時(shí)候,任何地方,使用任何工具時(shí),可以通過一個(gè).NET服務(wù)網(wǎng)絡(luò)上的任何信息,享受網(wǎng)絡(luò)帶來的便利和快樂。它自然已成為Microsoft的角色領(lǐng)導(dǎo).netWindows網(wǎng)絡(luò)框架。正是由于C#面向?qū)ο蟮奶貏e優(yōu)異的設(shè)計(jì),并且C#基于C和C++,同時(shí)又與Java高度相似,對于開發(fā)人員來說,它已成為實(shí)現(xiàn)各種組件設(shè)計(jì)的理想選擇,這些組件可以主動(dòng)構(gòu)建關(guān)鍵的相關(guān)業(yè)務(wù)對象或軟件系統(tǒng)級應(yīng)用程序。這也使得C#在編程語言領(lǐng)域中坐擁王座站在巔峰許多年。在使用方便的C#結(jié)構(gòu)之后,這些零件可以很容易地被操作運(yùn)用。由開發(fā)人員開發(fā)XMLweb,這樣一來不同類型對象的組件就可以由任何用于在任何系統(tǒng)上借助Internet完成操作,大大提高了編譯開發(fā)的自由度、兼容性和效率。C#有以下特性:1、效率與安全性2、支持現(xiàn)有的網(wǎng)絡(luò)編程新標(biāo)準(zhǔn)3、消除大量程序錯(cuò)誤4、依賴版本更新可以提供固有的支持并降低開發(fā)成本5、商業(yè)過程和軟件實(shí)現(xiàn)的更好對應(yīng)6、擴(kuò)展交互性ASP.NET簡介提到ASP.NET,我們應(yīng)該首先搞清楚ASP.NET的鼻祖ASP是什么。ASP代表ActiveServerPages,它是活動(dòng)服務(wù)器頁面,活動(dòng)服務(wù)器頁面到底是怎么回事呢?我們可以找到活動(dòng)和靜止這兩個(gè)反義詞來進(jìn)行比較,以前的網(wǎng)頁都是由靜態(tài)的超文本標(biāo)記語言頁面組成的,當(dāng)開發(fā)人需要更新他的網(wǎng)站內(nèi)容時(shí),他就必須輸入大量的HTML代碼不得不制作大量的超文本標(biāo)記語言頁面,因?yàn)檫@些HTML的頁面數(shù)據(jù)交流能力很差。自從有了ASP,我們就可以輕松地根據(jù)不同的用戶需求,在各個(gè)時(shí)段向各個(gè)使用者呈現(xiàn)各種各樣不一樣的東西。系統(tǒng)的內(nèi)容升級也不會(huì)是一個(gè)無聊冗長機(jī)械的一遍又一遍,它漸漸變成方便而有意思,也因此曾經(jīng)在國內(nèi)的ASP學(xué)習(xí)成為一種潮流趨勢。然而由于ASP制作出來的系統(tǒng)和網(wǎng)站的HTML代碼纏繞在一起,這就造成整個(gè)系統(tǒng)看起來非常的混亂無章法,無論是從結(jié)構(gòu)方面還是從代碼方面。作為當(dāng)前網(wǎng)站設(shè)計(jì)和開發(fā)過程的一個(gè)示例,開發(fā)過程的人通常會(huì)開發(fā)為后臺程序,而不是在服務(wù)器上安排專業(yè)和藝術(shù)設(shè)計(jì)頁面。這樣一來如果還是使用老舊的ASP,這樣,在相互合作的過程中就會(huì)出現(xiàn)各式各樣的問題,在開發(fā)真正大型的項(xiàng)目系統(tǒng)時(shí),會(huì)為開發(fā)團(tuán)隊(duì)帶來極大的困擾,如果這個(gè)團(tuán)隊(duì)不巧缺乏配合與交流,那將嚴(yán)重影響開發(fā)的進(jìn)度和質(zhì)量。同時(shí),ASP頁面的運(yùn)行速度不容樂觀,這是因?yàn)樗且环N腳本和文本語言的多重翻譯方法,然后繼續(xù),再加上腳本代碼語言結(jié)構(gòu)的實(shí)際局限性,在編寫和編寫工作程序時(shí),我們只能調(diào)用準(zhǔn)備好的語句和其他組件來成功地完成這些基本功能。在遇到了這些實(shí)際問題后,微軟做出了改進(jìn),在2000年宣布了自己的.NET框架,緊接著在2001年正式推出了ASP+,后改名為ASP.NET。為何ASP.NET更強(qiáng)大,如今被更多開發(fā)者使用?ASP+不僅僅只是ASP3.0的一個(gè)簡單的升級版本,它是基于標(biāo)準(zhǔn)的web開發(fā)平臺.Net框架。它為進(jìn)一步的設(shè)計(jì)開發(fā)給予了一種全新的、能力出眾的主服務(wù)端和控制結(jié)構(gòu)。它為程序人員支援了一種全新的強(qiáng)大的服務(wù)器控制布局,因此以后將重命名為ASP.NET。A與ASP類似,但有核心本質(zhì)的不同。ASP.Net基本上完全要基于技術(shù)組件和模塊的功能才易于發(fā)揮它的特點(diǎn)。對于每個(gè)接口,特定對象和特定對象元素的組合是作為一個(gè)整體運(yùn)行的兩個(gè)組件對象的比較。Partoftheunityisbasedonthecommonlanguageofprogramframe,canruninWEBapplicationdevelopmentplatformandbuildstrongASP.NETWEBapplicationwithASP.NETWEBservices[3].在開發(fā)文本和語言的其他方面。A不會(huì)在基本語言(例如VBScript和JScript)中使用,而只會(huì)在高級的.net框架語言(例如C#.net,)中使用,并且網(wǎng)絡(luò)得到支持。該框架已為此目的開發(fā)了一種語言,并將通過語言結(jié)構(gòu)重新生成的開放網(wǎng)站轉(zhuǎn)換為一個(gè)類,免費(fèi)翻譯DLL將在后臺編譯。A是由編譯器執(zhí)行的,它比ASP效率高得多。ASP.NET有以下技術(shù)特點(diǎn):Microsdenn.NET上其他平臺的出現(xiàn)非常頻繁,往往會(huì)加速相關(guān)產(chǎn)業(yè)以外的其他相關(guān)產(chǎn)業(yè)的發(fā)展,從而加速應(yīng)用技術(shù)流程相對獨(dú)立的研發(fā)和各種程序的執(zhí)行。顯然它已促進(jìn)了Internet近幾代的進(jìn)步,現(xiàn)今幾乎每臺裝有Windows的計(jì)算機(jī)上都安裝有Microsoft.NET。作為M的產(chǎn)品平臺的一小部分,還可以提供完整、簡單、簡單、可擴(kuò)展性最強(qiáng)的不同方法,用于進(jìn)一步的協(xié)同開發(fā)、集中部署,然后作為一個(gè)設(shè)備或其他設(shè)備繼續(xù)運(yùn)行任何人的web瀏覽,用于各種精美的應(yīng)用程序中,Net是一個(gè)創(chuàng)新的計(jì)算機(jī)技術(shù)編程的基本框架。它可以實(shí)現(xiàn)其他企業(yè)在技術(shù)方案中的程序執(zhí)行的中間和快速發(fā)展。而現(xiàn)實(shí)是,這還不是ASP.NET化作開發(fā)人員設(shè)計(jì)制作開發(fā)Web應(yīng)用程序的第一選擇的唯一原因。Inthisarea,ASP.NEThasbecomingthemainstreamoperatingsystem.ASP.NETwhichcanbeappliedonmanykindsofplatformisopensourceandfree.Itselfcansupportstrongnetworkfunctionandpossessnumeroussoftwareresources[4].與幾年前相比,簡化了各種程序和應(yīng)用程序中各種程序的開發(fā),并大大提高了程序員下班后的效率。A許可過程人員對Web應(yīng)用程序執(zhí)行此操作該應(yīng)用程序編寫少量代碼,并且各種過程提供了更全面,非常豐富且最重要的基本功能。還有更好的一項(xiàng)原因是ASP.NET為開發(fā)人員提供了更多的余地,任何可以使用的.Net編程語言,無論是vb.Net還是C#.Net或jscript.Net都能夠被用來開發(fā)ASP.Net,開發(fā)者不必為了使用ASP.NET而特地去學(xué)習(xí)之前自己不熟悉的語言。對于開發(fā)人員而言,很難將該過程的幾種方法部署到其他工作組所應(yīng)用的技術(shù)中,但是為了減少這兩個(gè)部署過程的目的,進(jìn)行了很大的改進(jìn)。因此開發(fā)者們不必再因這個(gè)問題絞盡腦汁掉光頭發(fā)。通過ASP.NET安排Web應(yīng)用程序,只需要把它拷貝到Web服務(wù)端上那就可以了。ASP.NET中數(shù)據(jù)的操作都可以利用ADO.NET通過SQL語句實(shí)現(xiàn),只要設(shè)定好SQL語句,傳遞給數(shù)據(jù)庫服務(wù)器,就可以實(shí)現(xiàn)數(shù)據(jù)的管理[5]。除了給予了足夠厚實(shí)的開發(fā)者這一領(lǐng)域的體會(huì),ASP.NET還為使用者提供了相當(dāng)大量的體驗(yàn)。ASP.NET的Web應(yīng)用程序比它的前輩ASP應(yīng)用程序的效率有了突飛猛進(jìn)的改善,由于允許我們操作經(jīng)過編譯后的程序語言,而且是可以重復(fù)使用,換言之ASP.NET通過編譯效率的提高增加了它的應(yīng)用程序的速度。因此,由于使用ASP等其他的Web語言編寫的頁面,在每次打開時(shí)都必須經(jīng)過先編譯后解釋的過程,所以同樣頁面在反復(fù)打開時(shí)速度不會(huì)有變化,而ASP.NET頁面只需要一次編譯后就不需要重新編譯,直到該頁面被修改或Web應(yīng)用程序重新啟動(dòng),這使得同樣頁面在反復(fù)打開時(shí)速度會(huì)有所提高[6]。在ASP.Net中可使用Windows、Passport和Cookie三種登錄驗(yàn)證方式,也可采用Impersonation功能執(zhí)行一些程序代碼和存取資源[7]。Windows驗(yàn)證集合IIS的驗(yàn)證機(jī)制,只需在IIS中進(jìn)行相關(guān)設(shè)置;Passport驗(yàn)證則只要在中央主機(jī)上登陸瀏覽任何支撐Passport服務(wù)的系統(tǒng)都可以擁有自動(dòng)登陸功能的能力;Cookie驗(yàn)證能自定義驗(yàn)證界面和驗(yàn)證規(guī)則,因此能夠精確控制安全性。ASP.NET甚至還能自動(dòng)檢測內(nèi)存泄漏和線程運(yùn)行狀況,它可以自動(dòng)重新啟動(dòng)進(jìn)程,也可以由系統(tǒng)自動(dòng)回收不正常狀態(tài)的線程以此保證服務(wù)器的連續(xù)運(yùn)行。總的來說,ASP.NET的安全性是極高的。數(shù)據(jù)庫簡介現(xiàn)代世界科學(xué)水平技術(shù)一直在不停地突破,信息或者說數(shù)據(jù)已然成為各行各業(yè)正常運(yùn)行繼續(xù)成長的重要資源,這時(shí)人們就需要對數(shù)據(jù)信息能夠輕松并全面地操作和管理。數(shù)據(jù)庫的概念被提出以后,不斷發(fā)展改進(jìn),逐漸完善的操作功能和管理功能,使它正在成為高速巨量信息表達(dá)的重要方式,現(xiàn)在更是有鋪天蓋地的云技術(shù)正在發(fā)展當(dāng)中,其中就是憑借數(shù)據(jù)庫和服務(wù)器的完美結(jié)合實(shí)現(xiàn)的。如今市面上,數(shù)據(jù)庫的產(chǎn)品有很多,比如:SQLserver,visualfoxpro,Framework,MicrosoftOfficeAccess,Oracle,MySQL,AdaptiveServerEnterprise(ASE),DB2等等,它們當(dāng)然各有各的優(yōu)缺點(diǎn)。在這里本網(wǎng)站選擇使用同樣來自微軟公司的SQLServer2017作為數(shù)據(jù)庫系統(tǒng)軟件,這樣一來,從編程語言到腳本語言再到數(shù)據(jù)庫,本網(wǎng)站都將與微軟公司會(huì)有緊密的關(guān)聯(lián)。關(guān)于SQLServer2017的介紹:SQLserver數(shù)據(jù)庫系統(tǒng)就是一種關(guān)系型的數(shù)據(jù)庫系統(tǒng),就是數(shù)據(jù)的內(nèi)部聯(lián)系是根據(jù)關(guān)系模型來建立的;它所有的關(guān)系型數(shù)據(jù)庫的系統(tǒng)都是使用結(jié)構(gòu)化的查詢語言來操作數(shù)據(jù)庫的數(shù)據(jù)[8]。MicrosoftSQLServer2017是由Microsoft公司開發(fā)的。MicrosoftSQLServer2017(稱為SQLServer)由相互協(xié)作的一系列組件組成。同時(shí),它引入了圖數(shù)據(jù)處理支持,自適應(yīng)查詢,用于高級分析的python集成以及其他功能更新,它可以滿足最終數(shù)據(jù)存儲空間的總體要求,大規(guī)模的web分析,以及公司自身數(shù)據(jù)的全面要求,直接解決網(wǎng)站功能的潛在需要。SQLServer2017在即時(shí)作業(yè)、管理和可程序化、進(jìn)階分析和各種設(shè)備端對端操作等方面比較它的上一代明顯產(chǎn)品SQLServer2008有明顯的進(jìn)步。甚至在安全性方面,提供了靜態(tài)和動(dòng)態(tài)加密、動(dòng)態(tài)資料遮罩和資料列層級安全性,作為電子商務(wù)網(wǎng)上購物網(wǎng)站這樣大量金錢交易的系統(tǒng),安全性尤為重要因此也被我優(yōu)先考慮。如今的Web系統(tǒng)中,數(shù)據(jù)庫扮演著越來越重要的角色,沒有數(shù)據(jù)庫的支持就無法完成巨量的數(shù)據(jù)流傳輸;這樣一來也為黑客留下了很大空間,很多黑客攻擊和數(shù)據(jù)丟失事件都是從數(shù)據(jù)庫切入的[9]。那么數(shù)據(jù)庫的加密能力就顯得格外重要,尤其是在我們這種電子商務(wù)的系統(tǒng)中,因?yàn)橐坏┍缓诳凸魧?huì)有巨額的財(cái)產(chǎn)損失。數(shù)據(jù)庫中數(shù)據(jù)系統(tǒng)的功能安全思想是一種由物理控制、標(biāo)準(zhǔn)最佳實(shí)踐、底層系統(tǒng)安全和大型數(shù)據(jù)庫管理成員組成的總體安全策略。按照傳統(tǒng)的方法,對數(shù)據(jù)庫中的數(shù)據(jù)軟件系統(tǒng)的安全性進(jìn)行全面控制它可以分為兩類:物理層、操作系統(tǒng)層和數(shù)據(jù)庫中的日常數(shù)據(jù)管理系統(tǒng)層。開發(fā)架構(gòu)簡介:過去,軟件系統(tǒng)開發(fā)的體系結(jié)構(gòu)很簡單,分為兩層,也就是說,用戶應(yīng)用界面和其他業(yè)務(wù)內(nèi)部邏輯是一層,數(shù)據(jù)庫中的數(shù)據(jù)是一層。兩層架構(gòu)最大的弊端在于當(dāng)任何一個(gè)細(xì)小的地方需要做出改變時(shí),很有可能整個(gè)體系都要隨之做出更新,乃至需要重新設(shè)計(jì)整個(gè)系統(tǒng),牽一發(fā)而動(dòng)全身。兩層架構(gòu)不便適于順應(yīng)系統(tǒng)需要的變化,系統(tǒng)持續(xù)護(hù)理難度大,可擴(kuò)展性不強(qiáng)。為了解決架構(gòu)中的這些問題,開發(fā)者們研究出了三層式架構(gòu),具體是指表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。表現(xiàn)層的功能首要是吸收用戶鍵入的信息數(shù)據(jù),并顯示處理過的用戶所需的信息數(shù)據(jù)。業(yè)務(wù)邏輯層則是表現(xiàn)層和數(shù)據(jù)訪問層的傳達(dá)人,真正的計(jì)算、檢驗(yàn)、數(shù)據(jù)信息處理等操作步驟都在此,這一層也匯集了網(wǎng)站的主要功能和業(yè)務(wù)邏輯。數(shù)據(jù)訪問層負(fù)責(zé)與數(shù)據(jù)庫進(jìn)行交流,通過數(shù)據(jù)訪問層通過在數(shù)據(jù)庫中添加,刪除,修改和查詢來保存和更新由業(yè)務(wù)邏輯層處理的數(shù)據(jù),以便將來可以方便地使用它們。為了進(jìn)一步擴(kuò)展這些應(yīng)用軟件的研發(fā)并構(gòu)建一個(gè)三層系統(tǒng),還有另一個(gè)最外層,也就是最關(guān)鍵的組件設(shè)計(jì)層,最后是客戶端更改和軟件系統(tǒng)。數(shù)據(jù)庫中有另一個(gè)最外層。通過在技術(shù)過程中最初建立三層系統(tǒng)的結(jié)構(gòu)細(xì)節(jié),可以采用多種方法來設(shè)計(jì)應(yīng)用程序。通常,過渡層負(fù)責(zé)處理幾乎所有其他業(yè)務(wù)規(guī)則,除了重新處理,對綜合數(shù)據(jù)內(nèi)容主體的首次訪問以及大部分法律依據(jù)的驗(yàn)證結(jié)果。在這種架構(gòu)中,新的客戶端將在/的幫助下通過連接方式連接到中間層,而數(shù)據(jù)庫系統(tǒng)將交互中間層。整個(gè)架構(gòu)大致運(yùn)作流程為:使用者通過表現(xiàn)層進(jìn)行輸入操作,業(yè)務(wù)邏輯層處置使用者的數(shù)據(jù)和請求,如果有需求則借由數(shù)據(jù)訪問層從數(shù)據(jù)庫調(diào)取信息數(shù)據(jù)繼續(xù)在業(yè)務(wù)邏輯層處置信息;業(yè)務(wù)邏輯層處理完成信息后,告知數(shù)據(jù)訪問層將數(shù)據(jù)送到數(shù)據(jù)庫進(jìn)行保存將來再用,同時(shí)業(yè)務(wù)邏輯層把處理好的信息上交給表現(xiàn)層輸出顯示給用戶。這樣一個(gè)以耦合結(jié)構(gòu)很低為核心的系統(tǒng)架構(gòu)中,其中的依賴是從上往下的,上層不理會(huì)下層也與下層無關(guān),對上層的設(shè)計(jì)做修改不會(huì)產(chǎn)生任何影響影響到它調(diào)用的底層。同時(shí),在不修改面向接口的基本標(biāo)準(zhǔn)時(shí),這樣的三層結(jié)構(gòu)的每一層應(yīng)該是可被調(diào)取和可被更替的。業(yè)務(wù)邏輯層的設(shè)計(jì)在面向數(shù)據(jù)訪問層和表現(xiàn)層時(shí),擁有不一樣的身份,面對前者像是調(diào)用者,后者則是被調(diào)用。整個(gè)架構(gòu)中所體現(xiàn)出來的依賴關(guān)系都圍繞著業(yè)務(wù)邏輯層,開發(fā)者在架構(gòu)設(shè)計(jì)中最大的問題和難點(diǎn)就是要做好業(yè)務(wù)邏輯的實(shí)現(xiàn),同時(shí)又要處理好這些關(guān)系之間的解耦。三層架構(gòu)主要是起到了解耦的作用,每一層分工明確,互不影響卻又緊密聯(lián)系。三層體系結(jié)構(gòu)的明顯優(yōu)勢是結(jié)構(gòu)、低耦合、高使用性、可保護(hù)性、可擴(kuò)展性之間關(guān)系的清晰整體表示,不利于開發(fā)任務(wù)的完全同步,不滿足市場需求的變化,適合漸進(jìn)式的變化。當(dāng)然,三層架構(gòu)也是有缺陷的。由于在三層架構(gòu)的系統(tǒng)程序中獲取數(shù)據(jù)必須通過中間層來完成,因此當(dāng)系統(tǒng)被投入運(yùn)營后會(huì)明顯地發(fā)現(xiàn)性能不高,相比不采用三層架構(gòu)的網(wǎng)站程序能夠徑直關(guān)聯(lián)到數(shù)據(jù)庫,系統(tǒng)的性能明顯降低了。另外,由于三層架構(gòu)系統(tǒng)中有一種自上而下的依賴關(guān)系,因此假設(shè)開發(fā)者在表現(xiàn)層中增加了一個(gè)功能,如果程序?qū)?yīng)的一段代碼自動(dòng)添加到相關(guān)業(yè)務(wù)對應(yīng)的內(nèi)部結(jié)構(gòu)邏輯思維層,并且系統(tǒng)完全被訪問以在其結(jié)構(gòu)中構(gòu)建數(shù)據(jù),為了保證整個(gè)系統(tǒng)的執(zhí)行仍然不符合獨(dú)特的分層體系結(jié)構(gòu)設(shè)計(jì)和構(gòu)建結(jié)構(gòu),這是三層體系結(jié)構(gòu)級聯(lián)修改的缺陷。現(xiàn)在我們經(jīng)常看到大型項(xiàng)目組中,前端UI的開發(fā)人員、后端的開發(fā)程序員和數(shù)據(jù)庫更新保護(hù)的開發(fā)程序員都是分開的,他們各司其職又互相交流,極大地提升了項(xiàng)目的功能性、開發(fā)速度并降低了項(xiàng)目的成本,這都是得益于三層結(jié)構(gòu)的存在。系統(tǒng)開發(fā)環(huán)境開發(fā)環(huán)境操作系統(tǒng): MicrosoftWindows10開發(fā)工具: C#數(shù)據(jù)庫選擇: SQLServer2017程序運(yùn)行環(huán)境a.軟件配置操作系統(tǒng):MicrosoftWindows10數(shù)據(jù)庫選擇:SQLServer2017開發(fā)平臺:C#b.硬件配置略需求分析一套系統(tǒng)在進(jìn)行設(shè)計(jì)開發(fā)的時(shí)候首當(dāng)其沖重要非同小可的一項(xiàng)步驟應(yīng)該是需求分析。所有的系統(tǒng)、程序、軟件、項(xiàng)目在最初開始的時(shí)候,需求分析都是最重要的一步。這一步就是筑樓施工的地基,它不但會(huì)確定一棟樓能造的多高,也會(huì)確定一棟樓能造成什么樣子。這是一個(gè)網(wǎng)上在線購物系統(tǒng)網(wǎng)站,所以這個(gè)網(wǎng)站會(huì)需要對銷售者出售的各種各類的商品實(shí)施管理,并且一定會(huì)對消費(fèi)者的信息以及消費(fèi)者的購物情況等內(nèi)容實(shí)施管理。因此,系統(tǒng)每天都會(huì)有很多的業(yè)務(wù)需要處理,為了保證各個(gè)業(yè)務(wù)處理的高效性,就需要我們在編寫系統(tǒng)之前,對網(wǎng)站所涉及到的系統(tǒng)需要實(shí)現(xiàn)的功能、業(yè)務(wù)流程、以及數(shù)據(jù)流程進(jìn)行詳細(xì)的分析[10]。系統(tǒng)功能及特性分析本系統(tǒng)設(shè)計(jì)開發(fā)的主要目的是為了實(shí)現(xiàn)商品的在線銷售與用戶購買、管理商品、賣家買家交流等功能。客戶消費(fèi)者方面主要有以下幾點(diǎn):(1)免費(fèi)注冊用戶賬號,包括賬號內(nèi)多個(gè)信息項(xiàng)目的存檔。(2)修改用戶信息。(3)可以在線查看商品信息,放進(jìn)購物車。(4)查看購物車商品,生成訂單。(5)商品信息留言。(6)幫助中心管理。管理員方面則主要由以下幾點(diǎn):(1)注冊用戶信息的維護(hù)。(2)維護(hù)產(chǎn)品信息的內(nèi)容,例如對各種商品和商品種類類型的添加或刪減、改動(dòng)(3)對商品(賣家)的留言管理功能。(4)容易操作的訂單功能。(5)商品信息查詢功能。(6)商品信息排行功能。數(shù)據(jù)庫需求分析前文提到,三層架構(gòu)對系統(tǒng)設(shè)計(jì)開發(fā)產(chǎn)生了重要作用,其中與數(shù)據(jù)訪問層密切相關(guān)的數(shù)據(jù)庫也成為整個(gè)程序系統(tǒng)設(shè)計(jì)中不可掉以輕心的部分,數(shù)據(jù)庫整體結(jié)構(gòu)的獨(dú)特設(shè)計(jì)將影響程序執(zhí)行系統(tǒng)在使用實(shí)際數(shù)據(jù)時(shí)的功能的速度和效率以及其他功能的效果。數(shù)據(jù)庫中合理的結(jié)構(gòu)編排和匹配也可以極大地增加數(shù)據(jù)的內(nèi)部保存速度和質(zhì)量,并確保綜合數(shù)據(jù)的相對完好度,降低出錯(cuò)率。合格設(shè)計(jì)的數(shù)據(jù)庫也能夠助力系統(tǒng)各需求的完美達(dá)成。制作數(shù)據(jù)庫系統(tǒng)時(shí)首先必須要對使用者每一個(gè)方向的需要要求都進(jìn)行詳細(xì)準(zhǔn)確地充分體會(huì),使用者當(dāng)下已經(jīng)提出的以及以后也許會(huì)增加的需要和要求我們都要納入考慮。其次對用戶的各項(xiàng)需求進(jìn)行分析,哪些是當(dāng)下我們可以解決的,容易解決的,哪些是不那么容易解決的,我們需要想什么樣的辦法來解決或者將這些部分簡化或轉(zhuǎn)化,讓它變成類似的功能。以上就應(yīng)該是我們做數(shù)據(jù)庫分析的方式方法。使用者的要求詳細(xì)地反映在對種種信息的支持、存儲、維護(hù)和交流,這將會(huì)需要數(shù)據(jù)庫結(jié)構(gòu)可以完美地實(shí)現(xiàn)各種數(shù)據(jù)信息的調(diào)取和鍵入。系統(tǒng)目標(biāo)開在設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)時(shí),通常必須考慮到以下明確的要求,以便設(shè)計(jì)和協(xié)調(diào)并獨(dú)立地開發(fā)更適合于所有用戶靈活操作的完整的系統(tǒng)實(shí)現(xiàn),而不是讓用戶吐槽導(dǎo)致后期需要投入大量精力成本去修改維護(hù)系統(tǒng),這樣的系統(tǒng)才能夠使用戶滿意讓開發(fā)者自己省力省心。1.將數(shù)據(jù)庫設(shè)計(jì)得更合理如之前一節(jié)所述數(shù)據(jù)庫的必要性。必須盡量去降低大型數(shù)據(jù)庫中不必要的重復(fù)多余的數(shù)據(jù)信息,使得最終數(shù)據(jù)反復(fù)的概率到最低標(biāo)準(zhǔn)級別,以釋放更多的數(shù)據(jù)保存空間,并大大提高電子計(jì)算機(jī)的運(yùn)行速度,同時(shí)可以避免數(shù)據(jù)重復(fù)帶來系統(tǒng)的不穩(wěn)定性和不安全性。2.將用戶界面設(shè)計(jì)得更友好用戶友好的頁面主界面設(shè)計(jì)是發(fā)現(xiàn)用戶如何評價(jià)各種類型軟件的最重要的其他方面之一,是用戶選擇是否要繼續(xù)使用該軟件的重要參考指標(biāo)。用戶界面的美觀與操作簡易都會(huì)讓用戶(消費(fèi)者)更愿意去使用這樣一個(gè)軟件,才有可能為該軟件帶來更多收益。系統(tǒng)分析前臺模塊介紹前臺模塊就是為用戶展示商品、進(jìn)行商品選擇并在線購物的地方,設(shè)計(jì)時(shí)需要根據(jù)網(wǎng)站的商品類型和網(wǎng)站的功能安排模塊布局,商品信息根據(jù)需要從數(shù)據(jù)庫系統(tǒng)中調(diào)出,使用戶(消費(fèi)者)能通過簡單的操作迅速地找到所需商品,確確實(shí)實(shí)做到“簡便高效易操作”的系統(tǒng)要求。1.注冊會(huì)員用戶在注冊成為會(huì)員以后,具有一定的權(quán)限,可以獲取本網(wǎng)站的資料信息、購買商品、訂單操作、和賣家在線交流等。2.修改用戶信息可以對用戶自己的會(huì)員信息進(jìn)行修改。3.購物車瀏覽商品信息后,將想要買入的商品放入購物車,以便進(jìn)行支付、訂單等操作,同時(shí)也可以在失去某件商品的購買欲望之后從購物車中去出該物品。4.我的訂單可以查看所有購物業(yè)務(wù)的流程信息和情況,包含已經(jīng)確認(rèn)但還未支付的定單、已經(jīng)支付成功的定單、未確認(rèn)收貨的定單等等。5.幫助中心為用戶展示本商店的一些幫助信息,以體現(xiàn)商店的服務(wù)功能。6.商品收藏用戶可以收藏有意向的商品,以便于以后回過頭來查看或購買該商品。根據(jù)上述,系統(tǒng)的功能需求可以通過圖3.1簡要表示。圖3.1系統(tǒng)的功能需求后臺模塊介紹在這個(gè)銷售網(wǎng)站中,后臺人員模塊更為重要。管理員在網(wǎng)頁管理模式網(wǎng)頁上管理更多的用戶信息內(nèi)容,類似產(chǎn)品的信息內(nèi)容,訂單等。在此位置,在后端模塊中輸入其他產(chǎn)品的三個(gè)主要類別。在維護(hù)類別中,商品將與數(shù)據(jù)信息管理工作,與定單相關(guān)的數(shù)據(jù)信息管理工作,產(chǎn)品渠道銷售的不完整統(tǒng)計(jì)信息以及所有與用戶有關(guān)的信息再次修訂相關(guān)。1.商品大、小類別管理將商品各層級種類類型進(jìn)行增加、改動(dòng)、刪去操作。2.商品信息管理對在線商品進(jìn)行增改刪操作,并為其選擇大小類別。3.訂單信息管理可以在此處查看用戶各種狀態(tài)的訂單、買賣雙方信息,以及對商品訂單進(jìn)行處理。4.商品銷量排行對產(chǎn)品銷售數(shù)據(jù)進(jìn)行排序處理,為管理員顯示產(chǎn)品銷售狀況的排行。5.修改用戶信息可以對用戶信息進(jìn)行修改。根據(jù)上述,系統(tǒng)的功能需求可以通過圖3.2簡要表示。圖3.2系統(tǒng)的功能需求模塊的流程圖前臺購物商品類別維護(hù)商品信息維護(hù)圖3.3商品信息維護(hù)流程圖訂單信息維護(hù)圖3.4訂單信息維護(hù)流程圖根據(jù)表與表之間的關(guān)系可以畫出ER圖圖3.5ER圖數(shù)據(jù)庫字典數(shù)據(jù)庫名稱:ITWeb.mdf表3.1管理員表3.2會(huì)員信息表3.3類別表3.4小類別表3.5訂單明細(xì)表3.6訂單表3.7商品表3.8productliuyan表3.9shoucang系統(tǒng)程序?qū)崿F(xiàn)系統(tǒng)主界面在瀏覽器中運(yùn)行本系統(tǒng)前臺,使用者可以瀏覽前臺系統(tǒng)的主界面,包括用戶會(huì)員的注冊與登錄、商品大小類別、產(chǎn)品列表、推薦產(chǎn)品列表與銷售排行等五大模塊。如圖:圖4.1系統(tǒng)主界面相關(guān)代碼如下:protectedvoidDataList9_ItemDataBound(objectsender,DataListItemEventArgse){if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)//if(e.Row.RowType==DataControlRowType.DataRow){//TextBoxTXT=(TextBox)e.Item.FindControl("quantity");//TXT.Text="1";LinkButtonlik=(LinkButton)e.Item.FindControl("LinkButton1");lik.Text=@"<imgsrc='77/gm.gif'border='0'>";LinkButtonlike=(LinkButton)e.Item.FindControl("LinkButton2");like.Text=@"<imgsrc='77/sc.gif'border='0'>";}}protectedvoidDataList2_ItemDataBound1(objectsender,DataListItemEventArgse){if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){DataListrptSmallClass=(DataList)e.Item.FindControl("DataList3");intbId=Convert.ToInt32(DataBinder.Eval(e.Item.DataItem,"classid"));//得到主鍵DataSetds=leibiexbll.GetList("classid="+bId);rptSmallClass.DataSource=ds;rptSmallClass.DataBind();}}運(yùn)行本系統(tǒng)后臺,可以瀏覽后臺系統(tǒng)的主界面,和五個(gè)模塊:含有管理員登陸、會(huì)員列表、高級會(huì)員信息內(nèi)容維護(hù)模式,業(yè)務(wù)信息日常維護(hù)和訂單數(shù)量維護(hù)模式,如圖:圖4.2系統(tǒng)主界面基本功能模塊用戶注冊此模塊目的是提供新會(huì)員用戶注冊。新會(huì)員注冊時(shí),系統(tǒng)判斷各項(xiàng)信息是不是為空,是否符合網(wǎng)站規(guī)則,前后輸入的密碼是不是一致。新會(huì)員可以為自己設(shè)置符合網(wǎng)站規(guī)則的用戶名,并鍵入密碼、確認(rèn)密碼、郵件地址、密碼問題與問題答案等等。如圖:圖4.3用戶注冊其相關(guān)代碼如下:publicDataSetGetfromxlm(){DataSetds=newDataSet();try{ds.ReadXml(MapPath("admin/zhuce.xml"));}catch{Response.Write("<Script>alert('信息文件丟失!')</Script>");}returnds;}privatevoidShownetinfo()}else{Label1.Visible=true;Label1.Text="用戶名可用";//Page.RegisterClientScriptBlock("e","<script>alert('用戶名可用')</script>");}}}購物車此模塊展示用戶購物車中的物品信息、購買物品的總數(shù)量和總金額。您還可以付款,清空消費(fèi)者購物車,增加或減少已選的商品總數(shù),更改已選的商品信息等等。如圖:圖4.4購物車其相關(guān)代碼如下:DoubleTtlPrice;CAI.SHOP.BLL.productproductbll=newCAI.SHOP.BLL.product();protectedvoidPage_Load(objectsender,EventArgse){if(!Page.IsPostBack){Image13.Visible=false;Msg.Visible=false;shoplist();}}protectedvoidshoplist(){HashtableHash;if(Session["car"]==null){Hash=newHashtable();}else{Hash=(Hashtable)Session["car"];}if(Hash.Count==0){Image13.Visible=true;Msg.Visible=true;Msg.Text="您還沒有購物呢?趕快購物吧!";}string[]ArrKey=newstring[Hash.Count];int[]ArrVal=newint[Hash.Count];stringProducts="('";Hash.Keys.CopyTo(ArrKey,0);Hash.Values.CopyTo(ArrVal,0);intk=0;for(intj=0;j<ArrKey.Length;j++){if(k>0)Products+="','";k++;}Products+="')";DataSetds=productbll.GetList("pidin"+Products);DataColumn[]Keys={Table1.Columns["pid"]};Table1.PrimaryKey=Keys;foreach(stringXinHash.Keys){Table1.Rows.Find(X)["shuliang"]=Hash[X];}Table1(newDataColumn("zongjia",GetType("System.Double"),"hotprice"));for(intI=0;I<Table1.Rows.Count;I++){}{HashtableHash;if(Session["car"]==null){Hash=newHashtable();}else{Hash=(Hashtable)Session["car"];}if(Hash.ContainsKey(e.CommandArgument)){Hash.Remove(e.CommandArgument);}Msg.Text=(string)e.CommandArgument;Session["car"]=Hash;shoplist();}{inti;HashtableHash;if(Session["car"]==null){Hash=newHashtable();}else{Hash=(Hashtable)Session["car"];}for(i=0;i<MyGrid.Rows.Count;i++){//CheckBoxcb=(CheckBox)GridView1.Rows[i].FindControl("BuyIt");Labellb=(Label)MyGrid.Rows[i].FindControl("bianhao");TextBoxtb=(TextBox)MyGrid.Rows[i].FindControl("shuliang");//if(cb.Checked&&Int32.Parse(tb.Text)>0)//{if(Convert.ToInt32(tb.Text)<=0){LTP.Common.MessageBox.Show(this,"數(shù)量填寫錯(cuò)誤!");//this.RegisterClientScriptBlock("E","<script>alert('數(shù)量填寫錯(cuò)誤!')</script>");tb.Focus();return;//ClientScript.RegisterStartupScript(ClientScript.GetType(),"aa","<script>alert('')</script>");}elseif(!Hash.ContainsKey(lb.Text)){Hash.Add(lb.Text,Int32.Parse(tb.Text));}else{Hash[lb.Text]=Convert.ToInt32(tb.Text);}//}}Session["car"]=Hash;shoplist();}{Session["car"]=null;shoplist();}{Response.Redirect("default.aspx");}訂單信息此模塊主要是在用戶購物過程中和購物完畢后為用戶生成購物訂單,好讓用戶了解自己購物的情況。界面主要分為兩大部分,上面是所購商品信息,下面是消費(fèi)者相關(guān)信息,本訂單支持多種商品,因此可以切換成列表的形式顯示,具體如圖:圖4.5訂單信息其相關(guān)代碼如下:{if(Session["username"]==null){Response.Redirect("ssnotice.aspx");}else{if(!Page.IsPostBack){Panel3.Visible=false;Panel1.Visible=false;}}}protectedvoidshoplist(){HashtableHash;if(Session["car"]==null){Hash=newHashtable();}else{Hash=(Hashtable)Session["car"];}string[]ArrKey=newstring[Hash.Count];int[]ArrVal=newint[Hash.Count];stringProducts="('";Hash.Keys.CopyTo(ArrKey,0);Hash.Values.CopyTo(ArrVal,0);intk=0;for(intj=0;j<ArrKey.Length;j++)Products+="')";//stringstrconn="Provider=Microsoft.Jet.OleDb.4.0;DataSource="+Server.MapPath("App_Data/shopping.mdb");//stringstrsql="Select*From商品Where編號In"+Products;//OleDbConnectionmyConnection=newOleDbConnection(strconn);//OleDbCommandmyCommand=newOleDbCommand(strsql,myConnection);//myConnection.Open();DataSetds=productbll.GetList("pidin"+Products);DataTableTable1=newDataTable();Table1=ds.Tables[0];DataColumn[]Keys={Table1.Columns["pid"]};Table1.PrimaryKey=Keys;foreach(stringXinHash.Keys){Table1.Rows.Find(X)["shuliang"]=Hash[X];Table1.Rows.Find(X)["shuliang1"]=Hash[X];}Table1.Columns.Add(newDataColumn("zongjia",System.Type.GetType("System.Double"),"hotprice*shuliang"));Table1.Columns.Add(newDataColumn("zongji",System.Type.GetType("System.Double"),"jifen*shuliang"));for(intI=0;I<Table1.Rows.Count;I++)//Session["TtlPrice"]=doubleztg=Convert.ToDouble(TtlPrice.ToString())+Convert.ToDouble(RadioButtonList1.SelectedValue.ToString());Label3.Text=ztg.ToString();Label1.Text=":"+()+"元+"+RadioButtonList1.()+"="+ztg.ToString()+"元";Label12.Text=jifena.ToString();MyGrid.DataSource=Table1.DefaultView;MyGrid.DataBind();}用戶訂單列表這部分主要是顯示消費(fèi)者曾經(jīng)購物的定單,消費(fèi)者可以通過此處瀏覽自己的定單情況,具體如圖:圖4.6訂單列表其相關(guān)代碼如下:CAI.SHOP.BLL.ordersorderbll=newCAI.SHOP.BLL.orders();CAI.SHOP.BLL.productproductbll=newCAI.SHOP.BLL.product();{if(Session["username"]==null){Response.Redirect("ssnotice.aspx");}else{bindding();bindyy();//GridView1.DataSourceID="SqlDataSource1";}}publicvoidbindding(){DataSetdst=productbll.GetList(6,"","newid()");DataList3.DataSource=dst;DataList3.DataBind();}publicvoidbindyy(){DataSetds=("username='"+"'orderbydesc");GridView1.DataSource=ds;GridView1.DataBind();}{}{if(e.Row.RowType==DataControlRowType.DataRow){DataRowViewdrv=e.Row.DataItemasDataRowView;Labellabel=(Label)e.Row.FindControl("zhuangtai");LinkButtonlb=(LinkButton)e.Row.FindControl("geng");switch(drv["dingdanfeel"].ToString()){case"0":{label.Text="未確定訂單";lb.Text="確定訂單";break;}case"1":{label.Text="等待發(fā)貨";lb.Text="取消訂單";break;}case"2":{label.Text="商家已發(fā)貨";lb.Text="確認(rèn)收貨";break;}case"3":{label.Text="確認(rèn)收貨";lb.Text="等待完成";lb.Enabled=false;break;}case"4":{label.Text="完成交易";lb.Text="交易完成";lb.Enabled=false;break;}}}}商品小類管理該模塊的兩個(gè)方面用于二級分類的管理。將產(chǎn)品劃分類別時(shí),將根據(jù)實(shí)際情況選擇類別的第一層級,檢查類別是否適合,并提示其它相關(guān)內(nèi)容,如圖:圖4.7商品類別維護(hù)其相關(guān)代碼如下:publicpartialclassSPXLList:System.Web.UI.Page{{//此處設(shè)置用戶代碼重啟頁面if(!Page.IsPostBack){initDg();}}protectedvoidinitDg(){DataTabledt=newDataTable();dt=(newBLL.leibiex()).GetList("").Tables[0];if(dt.Rows.Count<1)dt.Rows.Add(dt.NewRow());this.GridView1.DataSource=dt.DefaultView;this.GridView1.DataBind();}{//跳轉(zhuǎn)頁面Response.Redirect("SPXL.aspx");}{if(e.CommandName=="Mod"){//傳遞修改的標(biāo)志跳轉(zhuǎn)頁面Response.Redirect("SPXL.aspx?ID="+Key);}elseif(e.CommandName=="Del"){//獲取服務(wù)器相對路徑//刪除商品信息initDg();}}{if(e.Row.RowIndex!=-1){if(e.Row.Cells[0].Text==" ")e.Row.Cells[.Columns.Count-1].=false;}}{this.GridView1.PageIndex=e.NewPageIndex;initDg();}商品信息管理此模塊主要是對商品信息的管理。添加商品信息時(shí),系統(tǒng)確定物品特定名字是不是為空。添加或改動(dòng)物品信息時(shí),所有商品的所有類別都直接相關(guān);刪除內(nèi)容產(chǎn)品信息時(shí),訂單詳細(xì)信息是內(nèi)部相關(guān)的。如圖:圖4.8商品信息維護(hù)列表圖4.9商品信息維護(hù)頁面其相關(guān)代碼如下:protectedvoidPage_Load(objectsender,EventArgse){//在此處放置用戶代碼以初始化頁面if(!Page.IsPostBack){Session.Remove("imgname");if(Request.QueryString["ID"]!=null){//顯示當(dāng)前的商品信息Mductprd=(()).GetModel(Int32.(Request["ID"]));if(prd!=null){this.DropDownList1.SelectedValue=prd.classid.ToString();DropDownList2.DataTextField="classxname";DropDownList2.DataValueField="classxid";DropDownList2.DataSource=(new()).GetList("Classid="+ToString());DropDownList2.DataBind();this.DropDownList2.SelectedValue=prd.classxid.ToString();txtSPMC.Text=ductname;txtSPJG.Text=prd.masterprice.ToString();txtRMJ.Text=prd.hotprice.ToString();txtKC.Text=prd.pkc.ToString();txtGJZ.Text=ductguanjian;txtSPPP.Text=ductchu;txtSPGG.Text=prd.guige;txtJF.Text=prd.jifen.ToString();txtSPZP.Text=prd.zenpin;DropDownList3.SelectedIndex=prd.newproduct;txtXXSM.Text=ductintroduce;this.Image1.ImageUrl="../"+ductimage.ToString();Session["imgname"]=ductimage.ToString();}}}}{//判斷信息是否正確if(this.txtSPMC.Text.Trim()==""){return;}//將相關(guān)的圖片上傳到@"Image\"路徑下stringFileName="";stringFileName1;stringDPath;DPath=Server.MapPath("..")+@"\";DPath=DPath+@"pic\";if(this.File1.PostedFile.FileName!=""){stringstrHzm="."+temp[temp.Length-1];Guidtmp=Guid.NewGuid();FileName=tmp.ToString()+strHzm;FileName1=DPath+tmp.ToString()+strHzm;this.File1.PostedFile.SaveAs(FileName1);if(Session["imgname"]!=null){{File.Delete(DPath+ToString());}}}//根據(jù)標(biāo)志判斷是添加還是修改的操作保存商品信息Mductprd=newMduct();prd.classid=int.Parse(this.DropDownList1.SelectedValue);prd.classxid=int.Parse(this.DropDownList2.SelectedValue);ductname=txtSPMC.Text;prd.masterprice=Decimal.Parse(txtSPJG.Text);prd.hotprice=Decimal.Parse(txtRMJ.Text);prd.pkc=int.Parse(txtKC.Text);ductguanjian=txtGJZ.Text;ductchu=txtSPPP.Text;prd.guige=txtSPGG.Text;prd.jifen=int.Parse(txtJF.Text);prd.zenpin=txtSPZP.Text;prd.newproduct=DropDownList3.SelectedIndex;ductintroduce=txtXXSM.Text;if(FileName!=""){ductimage="pic\\"+FileName;}else{ductimage=this.Image1.ImageUrl;}if(Request.QueryString["ID"]!=null){prd.pid=Convert.ToInt32(Request.QueryString["ID"]);(newBLL.product()).Update(prd);}else{(newBLL.product()).Add(prd);}}訂單信息維護(hù)該模塊還可以快速查看發(fā)現(xiàn)用戶訂購產(chǎn)品的各種信息,以及訂購產(chǎn)品的詳細(xì)描述,并在訂購數(shù)量上與訂購產(chǎn)品一致。此外,后臺人員還可以刪除不需要的訂單數(shù)量和各種數(shù)據(jù)信息。如圖:圖4.10訂單信息維護(hù)其相關(guān)代碼如下:protectedvoidPage_Load(objectsender,EventArgse){//在此處放置用戶代碼以初始化頁面if(!Page.IsPostBack){rdLB.DataTextField="Classname";rdLB.DataValueField="Classid";rdLB.DataSource=(newBLL.leibie()).GetAllList();rdLB.DataBind();if(Request.QueryString["ID"]!=null){//顯示當(dāng)前的商品信息DataTabletmpda=newDataTable();tmpda=(newBLL.leibiex()).GetList("Classxid="+Request.QueryString["ID"]).Tables[0];if(tmpda.Rows.Count>0){}}}}{//判斷信息是否正確if(this.txtSPMC.Text.Trim()==""){return;}//根據(jù)標(biāo)志判斷是添加還是修改的操作保存商品信息Model.leibiexyy=newModel.leibiex();yy.Classid=int.Parse(this.rdLB.SelectedValue);yy.Classxname=this.txtSPMC.Text;if(Request.QueryString["ID"]!=null){yy.Classxid=Convert.ToInt32(Request.QueryString["ID"]);(newBLL.leibiex()).Update(yy);}else{(newBLL.leibiex()).Add(yy);}Page"info","<script>('成功!');window.location.href='SPXLList.aspx';</script>");}商品銷量排行此模塊主要是顯示所有商品的銷售量排行。如圖:圖4.11商品銷量排行其相關(guān)代碼如下:publicpartialclassSPXXList:System.Web.UI.Page{{//在此處放置用戶代碼以初始化頁面if(!Page.IsPostBack){initDg();}}protectedvoidinitDg(){DataTabledt=newDataTable();dt=(newBLL.product())("'%"+TextBox1.Text+"%'like'%"+Text+"%'").[0];if(dt.Rows.Count<1)dt.Rows.Add(dt.NewRow());this.GridView1.DataSource=dt.DefaultView;this.GridView1.DataBind();}{//跳轉(zhuǎn)頁面Response.Redirect("SPXX.aspx");}{if(e.CommandName=="Mod"){//傳遞修改的標(biāo)志跳轉(zhuǎn)頁面Response.Redirect("SPXX.aspx?ID="+Key);}elseif(e.CommandName=="Del"){//獲取服務(wù)器相對路徑//刪除商品信息(newBLL.product()).Delete(Convert.ToInt32(Key));initDg();}}{if(e.Row.RowIndex!=-1){if(e.Row.Cells[0].Text==" ")e.Row.Cells[this.Count-1].Visible=false;}}{this.GridView1.PageIndex=e.NewPageIndex;initDg();}商品信息查詢此模塊按照不同查詢條件搜索并顯示商品信息。如圖:圖4.12商品信息查詢列表其相關(guān)代碼如下:publicpartialclassSPXXList:System.Web.UI.Page{{//在此處放置用戶代碼以初始化頁面if(!Page.IsPostBack){initDg();}}protectedvoidinitDg(){DataTabledt=newDataTable();dt=(newBLL.product()).+TextBox1.Text+"%;if(dt.Rows.Count<1)dt.Rows.Add(dt.NewRow());this.GridView1.DataSource=dt.DefaultView;this.GridView1.DataBind();}{//跳轉(zhuǎn)頁面Response.Redirect("SPXX.aspx");}{if(e.CommandName=="Mod"){//傳遞修改的標(biāo)志跳轉(zhuǎn)頁面Response.Redirect("SPXX.aspx?ID="+Key);}elseif(e.CommandName=="Del"){//獲取服務(wù)器相對路徑//刪除商品信息initDg();}}{if(e.Row.RowIndex!=-1){if(e.Row.Cells[0].Text==" ")e.Row.Cells[this.GridView1.-1].Visible=false;}}{this.GridView1.PageIndex=e.NewPageIndex;initDg();}軟件測試測試應(yīng)當(dāng)是貫通整個(gè)系統(tǒng)設(shè)計(jì)制作開發(fā)過程的一個(gè)動(dòng)作,為確保系統(tǒng)最終質(zhì)量的重要方式。軟件測試就是在指定的標(biāo)準(zhǔn)前提下運(yùn)行系統(tǒng)并實(shí)施操作,在這一過程中將實(shí)際輸出和預(yù)期輸出完成審核比較,以此來發(fā)現(xiàn)程序錯(cuò)誤衡量程序質(zhì)量,評估軟件的制作開發(fā)是否滿足前期所做的需求分析、系統(tǒng)分析等。軟件測試應(yīng)該盡可能地設(shè)計(jì)合理的測試用例,這樣才更有機(jī)會(huì)去發(fā)現(xiàn)軟件系統(tǒng)中潛在的毛病,為軟件的自查、完善做出貢獻(xiàn)。軟件測試的意義1947年的9月9日,在哈佛大學(xué)實(shí)驗(yàn)室,美國的計(jì)算機(jī)科學(xué)家葛麗絲·霍波正在進(jìn)行著計(jì)算機(jī)的研發(fā)工作,突然一只蛾子飛到計(jì)算機(jī)的繼電器觸點(diǎn)之間被夾住。當(dāng)時(shí)的計(jì)算機(jī)體積極大且依靠繼電器開關(guān)來執(zhí)行二進(jìn)制指令的工作,繼電器電路短路中斷,導(dǎo)致整個(gè)MarkII突然停止運(yùn)作。當(dāng)霍波發(fā)現(xiàn)并取出這只蛾子后,計(jì)算機(jī)并恢復(fù)了運(yùn)行。霍波將這只蛾子粘在了工作日記上并寫道“Firstact
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025授權(quán)合同協(xié)議書(以此為準(zhǔn))
- 生物制藥公司合同協(xié)議
- 用工合用工合同協(xié)議
- 珠寶個(gè)人買賣合同協(xié)議
- 環(huán)保鋼帶箱采購合同協(xié)議
- 鹽水鵝供銷合同協(xié)議
- 甲級木質(zhì)門銷售合同協(xié)議
- 甲乙雙方協(xié)議終止合同
- 電解液采購合同協(xié)議
- 電器組裝采購合同協(xié)議
- 法人治理主體“1+3”權(quán)責(zé)表
- 幼兒園中班語言繪本《章魚先生賣雨傘》課件
- 高考高中生物二輪 原因類答題技巧課件
- 廣東省廣州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- Thecleverpig教學(xué)課件(省一等獎(jiǎng))
- 醫(yī)院突發(fā)呼吸心跳驟停搶救演練腳本
- 電梯施工方案-鋼結(jié)構(gòu)安裝專項(xiàng)方案電梯井模版
- 課件-強(qiáng)排方案設(shè)計(jì)課件
- 駕校安全安全隱患臺帳
- 利益沖突審查表
- 環(huán)境社會(huì)學(xué)整本書課件完整版電子教案全套課件最全教學(xué)教程ppt(最新)
評論
0/150
提交評論