網(wǎng)上商城購物系統(tǒng)畢業(yè)設(shè)計論文_第1頁
已閱讀1頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢 業(yè) 設(shè) 計(論 文)</p><p>  題   目 Market網(wǎng)上商城購物系統(tǒng)</p><p>  并列英文題 Market Online Sales System</p><p><b>  摘要 </b></p><p>  隨著21世紀的到來,信息化時代已經(jīng)向我們走來,這個時代的最重要

2、的標志就是計算機的廣泛應(yīng)用。如今社會上計算機應(yīng)用已經(jīng)達到非常普及的程度,隨處都可以見到計算機的身影。我們也熟悉了在社會各處遇見它們的環(huán)境,家庭娛樂,學(xué)校的機房,金融場所,以及到處可見的網(wǎng)吧,計算機如水銀般無孔不入。</p><p>  近年來,隨著網(wǎng)絡(luò)技術(shù)和Internet的迅速發(fā)展,基于Browser/Server結(jié)構(gòu)的Web應(yīng)用,因其具有易用性、通用性和良好的可擴展性等優(yōu)點而發(fā)展迅速,正逐漸成為實現(xiàn)企業(yè)管理信

3、息系統(tǒng)的主流技術(shù)。而開發(fā)一個Web應(yīng)用系統(tǒng)是一項浩大的工程,要求設(shè)計者能夠提出合理的系統(tǒng)架構(gòu)。合理的系統(tǒng)架構(gòu)可以減少開發(fā)及維護系統(tǒng)所用的資源,提升工作效率。因此,在Web企業(yè)級應(yīng)用系統(tǒng)開發(fā)過程中,設(shè)計模式的選定和應(yīng)用系統(tǒng)架構(gòu)的設(shè)計是一個重要環(huán)節(jié)。</p><p>  本系統(tǒng)運用平時所學(xué)ASP.NET一些基本技術(shù),自定義控件,ADO.NET技術(shù),實現(xiàn)了market網(wǎng)上購物商城的前臺頁面瀏覽,用戶注冊登錄,用戶下訂單

4、購物,購物車,后臺的用戶、物流、訂單等管理的功能。達到了畢業(yè)設(shè)計的要求,同時鍛煉了自己的動手能力。</p><p>  Abstract With the advent of the 21st century, information age has come to us, this era is the most important symbol of the extensive application of

5、 computers. Now the community has reached a very popular computer application degree, the computer can be seen everywhere on the scene. We are also familiar encounter them everywhere in the social environment, family ent

6、ertainment, school room, financial sites, and Internet cafes are everywhere, as all-pervasive computer such as mercury. In recent y</p><p><b>  朗讀</b></p><p>  顯示對應(yīng)的拉丁字符的拼音</p>

7、;<p><b>  字典</b></p><p>  ©2010商務(wù)工具譯者工具包關(guān)于 Google 翻譯博客隱私權(quán)政策幫助</p><p><b>  目錄</b></p><p>  第一章 我國電子商務(wù)的現(xiàn)狀和發(fā)展前景- 1 -</p><p>  第二章 系統(tǒng)需求

8、分析- 5 -</p><p>  2.1 系統(tǒng)功能需求- 5 -</p><p>  2.2 系統(tǒng)設(shè)計思路- 6 -</p><p>  2.2.1 功能設(shè)計- 6 -</p><p>  2.2.2 結(jié)構(gòu)設(shè)計- 7 -</p><p>  第三章 數(shù)據(jù)庫設(shè)計- 9 -</p><p&

9、gt;  3.1 數(shù)據(jù)庫各表關(guān)系圖- 9 -</p><p>  3.2 部分表字段設(shè)計及注釋- 9 -</p><p>  第四章 系統(tǒng)實現(xiàn)主要技術(shù)介紹- 12 -</p><p>  4.1 ASP.NET內(nèi)置對象- 12 -</p><p>  4.2 ASP.NET自定義用戶控件- 15 -</p><p

10、>  4.3 ADO.NET- 16 -</p><p>  第五章 系統(tǒng)部分功能展示及其實現(xiàn)代碼- 21 -</p><p>  5.1 部分界面展現(xiàn)- 21 -</p><p>  5.2 新用戶注冊和用戶登陸- 23 -</p><p>  5.3 后臺管理功能- 28 -</p><p>  5

11、.4 隨機產(chǎn)生驗證碼代碼- 30 -</p><p>  5.5 數(shù)據(jù)訪問核心類部分代碼- 31 -</p><p>  第六章 總結(jié)- 35 -</p><p>  參考文獻- 36 -</p><p><b>  附錄- 37 -</b></p><p>  第一章 我國電子商務(wù)的現(xiàn)

12、狀和發(fā)展前景</p><p>  電子商務(wù)作為現(xiàn)代服務(wù)業(yè)中的重要產(chǎn)業(yè),有“朝陽產(chǎn)業(yè)、綠色產(chǎn)業(yè)”之稱,具有“三高”、“三新”的特點?!叭摺奔锤呷肆Y本含量、高技術(shù)含量和高附加價值;“三新”是指新技術(shù)、新業(yè)態(tài)、新方式。人流、物流、資金流、信息流“四流合一”是對電子商務(wù)核心價值鏈的概括。電子商務(wù)產(chǎn)業(yè)具有市場全球化、交易連續(xù)化、成本低廉化、資源集約化等優(yōu)勢。</p><p>  電子商務(wù)按照參與

13、主體和客戶的不同,可分為多種形式,但目前看,B2B、B2C、C2C是主要形式,其中B2B是最主要的應(yīng)用形式。按照貿(mào)易主導(dǎo)主體,可分為銷售方控制型、購買方控制型和中立第三方控制型。</p><p> ?。ㄒ唬┤螂娮由虅?wù)發(fā)展概況</p><p>  縱觀全球電子商務(wù)市場,各地區(qū)發(fā)展并不平衡,呈現(xiàn)出美國、歐盟、亞洲“三足鼎立”的局面。</p><p>  美國是世界最早

14、發(fā)展電子商務(wù)的國家,同時也是電子商務(wù)發(fā)展最為成熟的國家,一直引領(lǐng)全球電子商務(wù)的發(fā)展,是全球電子商務(wù)的成熟發(fā)達地區(qū)。歐盟電子商務(wù)的發(fā)展起步較美國晚,但發(fā)展速度快,成為全球電子商務(wù)較為領(lǐng)先的地區(qū)。亞洲作為電子商務(wù)發(fā)展的新秀,市場潛力較大,但是近年的發(fā)展速度和所占份額并不理想,是全球電子商務(wù)的持續(xù)發(fā)展地區(qū)。</p><p>  全球B2B電子商務(wù)交易一直占據(jù)主導(dǎo)地位,2002年至今,呈現(xiàn)持續(xù)高速增長態(tài)勢,2007年全球

15、B2B交易額達到8.3萬億美元,預(yù)計在未來幾年將保持40%以上的增長率,到2010年B2B交易額將達到26萬億美元,比2002年增長30多倍。</p><p> ?。ǘ┪覈娮由虅?wù)發(fā)展概況</p><p>  1、我國電子商務(wù)的現(xiàn)狀</p><p>  我國電子商務(wù)發(fā)展呈現(xiàn)典型的塊狀經(jīng)濟特征,東南沿海屬于較為發(fā)達地區(qū),北部和中部屬于快速發(fā)展地區(qū),西部則相對落后。&

16、lt;/p><p>  自2005年以來,我國電子商務(wù)市場交易額穩(wěn)定增長,2007 年我國電子商務(wù)市場規(guī)模突破17000億元。未來3年,仍是我國電子商務(wù)投資規(guī)模持續(xù)增長和爆發(fā)的時期,我國電子商務(wù)投資市場將迎來新一輪的發(fā)展高潮。一方面,2007年國家“十一五”電子商務(wù)發(fā)展規(guī)劃的頒布標志著政府推動電子商務(wù)的總體布局已經(jīng)形成;另一方面,電子商務(wù)在企業(yè)的應(yīng)用成效以及對經(jīng)濟、社會發(fā)展的推動作用日益明顯。</p>

17、<p>  2007年我國B2B 電子商務(wù)交易額約為12500億元,比2006年增長25.5%。目前B2B 市場的集中度較高,在綜合類網(wǎng)站中,阿里巴巴已占近乎7成份額。2007年我國B2C網(wǎng)站總收入約為52.2億元,同比增長33.5%。B2C是傳統(tǒng)企業(yè)開展電子商務(wù)的主要形式,隨著網(wǎng)絡(luò)購物環(huán)境的好轉(zhuǎn)以及企業(yè)(特別是大中型企業(yè))電子商務(wù)化程度的提升,在總體規(guī)模上B2C 將會有一個長足的發(fā)展,并成為未來網(wǎng)購的主流。2007年我國C2

18、C交易額約為410.4億元,同比增長90%;C2C是目前我國網(wǎng)購的主要形式,但普及率還較低,不到網(wǎng)民總數(shù)的3成。</p><p>  2、我國電子商務(wù)發(fā)展趨勢</p><p> ?。?)電子商務(wù)的發(fā)展環(huán)境將不斷完善,發(fā)展動力持續(xù)增強隨著市場經(jīng)濟體制進一步完善,推進經(jīng)濟增長方式轉(zhuǎn)變和結(jié)構(gòu)調(diào)整的力度繼續(xù)加大,發(fā)展電子商務(wù)的需求將會更加強勁。電子商務(wù)將被廣泛應(yīng)用于生產(chǎn)、流通、消費等各領(lǐng)域和社會生

19、活的各個層面。這將促使全社會電子商務(wù)的應(yīng)用意識不斷增強,有關(guān)電子商務(wù)的政策、法律、法規(guī)將不斷出臺,電子商務(wù)發(fā)展的政策法律環(huán)境將不斷完善。同時,也促使物流、信用、電子支付等電子商務(wù)支撐體系建設(shè)更全面的展開,從而使得電子商務(wù)發(fā)展的內(nèi)在動力持續(xù)增強。</p><p> ?。?)電子商務(wù)應(yīng)用將達到新的廣度和深度隨著《電子商務(wù)發(fā)展“十一五”規(guī)劃》的實施,電子商務(wù)在國民經(jīng)濟各部門中將得到進一步的推廣和應(yīng)用。電子商務(wù)交易額呈現(xiàn)

20、穩(wěn)定持續(xù)增長態(tài)勢;在區(qū)域發(fā)展方面,長三角、珠三角和環(huán)渤海等東南沿海的電子商務(wù)在繼續(xù)高速增長的同時,輻射力也逐漸提高,將促進東部和中西部地區(qū)之間的協(xié)調(diào)發(fā)展;在企業(yè)應(yīng)用方面,在國家、各級政府的政策引導(dǎo)下,在電子商務(wù)服務(wù)業(yè)的協(xié)助下,將促進企業(yè)由非支付型電子商務(wù)向支付型電子商務(wù)發(fā)展、協(xié)同電子商務(wù)的發(fā)展,深化企業(yè)應(yīng)用水平。</p><p> ?。?)電子商務(wù)與產(chǎn)業(yè)發(fā)展深度融合不斷加大,加速形成經(jīng)濟競爭新態(tài)勢</p&g

21、t;<p>  在綜合性電子商務(wù)網(wǎng)站已經(jīng)占據(jù)綜合類B2B領(lǐng)域絕大部分市場的情況下,越來越多的行業(yè)電子商務(wù)網(wǎng)站已經(jīng)在綜合網(wǎng)站市場之外尋求專業(yè)化細分領(lǐng)域的發(fā)展。電子商務(wù)正在與傳統(tǒng)產(chǎn)業(yè)進行深入的融合,兩者相互促進,協(xié)調(diào)發(fā)展。</p><p> ?。?)電子商務(wù)服務(wù)業(yè)蓬勃發(fā)展,逐步成為國民經(jīng)濟新的增長點隨著企業(yè)供應(yīng)鏈電子商務(wù)、國際電子商務(wù)的發(fā)展,將帶動電子商務(wù)服務(wù)業(yè)的發(fā)展,圍繞電子商務(wù)服務(wù)形成的從低端技術(shù)環(huán)

22、節(jié)到中端支撐環(huán)節(jié)再到高端應(yīng)用環(huán)節(jié)的電子商務(wù)服務(wù)鏈在我國結(jié)點飽滿,一個全新視角的電子商務(wù)服務(wù)業(yè)群正在形成,將成為未來國民經(jīng)濟新的增長點。</p><p> ?。?)移動電子商務(wù)正成為電子商務(wù)新的應(yīng)用領(lǐng)域2006年以來,移動通訊商,密切關(guān)注移動商務(wù)企業(yè)市場,中國移動和銀聯(lián)聯(lián)手推出的“手機錢包”,完成移動電子商務(wù)付費的個性化服務(wù)。基于移動支付的支持,移動電子商務(wù)正成為電子商務(wù)新的應(yīng)用領(lǐng)域。</p><

23、;p>  第二章 系統(tǒng)需求分析</p><p>  2.1 系統(tǒng)功能需求</p><p>  21世紀以來,人類經(jīng)濟高速發(fā)展,人們生活發(fā)生了日新月異的變化,特別是計算機的應(yīng)用及普及到經(jīng)濟和社會生活的各個領(lǐng)域。使原本的舊的管理方式越來越不適應(yīng)現(xiàn)在社會的發(fā)展。許多人還停留在以前的逛街去買需要的用品,網(wǎng)上商城為大家?guī)砹藰O大地方便。我所開發(fā)的market網(wǎng)上商城購物系統(tǒng)基本上實現(xiàn)了在線購物

24、的需求,采用Microsoft Visual Studio 2010作為開發(fā)平臺,使用SQLServer2005作為后臺數(shù)據(jù)庫。本網(wǎng)上書店在線銷售系統(tǒng)是基于B/S架構(gòu),本網(wǎng)站系統(tǒng)的開發(fā)主要是方便用戶足部出戶就可以購買商品,減少供應(yīng)商店面費用。</p><p>  本系統(tǒng)共有三類用戶:</p><p>  訪客:指沒有登陸權(quán)限(主要指網(wǎng)絡(luò)用戶),以匿名用戶的身份訪問系統(tǒng)網(wǎng)站。此類用戶主要有瀏

25、覽系統(tǒng)信息、查看商品信息,注冊成為會員。把本網(wǎng)站設(shè)為首頁,添加到收藏夾,聯(lián)系管理員等操作。瀏覽的內(nèi)容包括:商品信息、商品分類信息。</p><p>  會員:這類用戶擁有游客的所有權(quán)限;會員可以注冊成為會員,并根據(jù)會員ID和密碼登陸系統(tǒng),登陸之后可以對更改自己的信息但會員ID做為數(shù)據(jù)庫表主鍵不能修改。會員登陸后可以查看商品信息,查看各種分類商品信息,將商品添加到購物車中,修改購物車中商品數(shù)量,或是刪除某些不想要的

26、商品。</p><p>  系統(tǒng)管理員:系統(tǒng)管理員主要負責(zé)管理著系統(tǒng)后臺信息;主要有訂單管理,商品管理,會員管理,物流管理和系統(tǒng)管理。訂單管理有未確認訂單和已確認訂單管理,未付款訂單。商品管理主要有商品添加和商品管理,商品類別添加和商品類別管理。會員管理主要有添加管理員和管理管理員,管理會員。物流系統(tǒng)主要有支付方式添加和管理,配送方式添加和管理,配送地點添加和管理。系統(tǒng)管理主要是上傳管理。</p>

27、<p>  因此,本系統(tǒng)主要功能是對商品進行管理規(guī)劃,方便會員購買。</p><p>  2.2 系統(tǒng)設(shè)計思路</p><p>  2.2.1 功能設(shè)計</p><p>  商城前臺:功能強大,操作方便。</p><p>  前臺作為與用戶直接交互的界面,在考慮功能的同時,也考慮了操作的簡潔和方便,目的是讓大多數(shù)不懂電腦操作的客戶也

28、能輕松地享受網(wǎng)上購物帶來的極大方便。主要包括以下幾個模塊:</p><p> ?、?商品信息和類別展示</p><p><b> ?、?用戶注冊和登錄</b></p><p> ?、?已登錄用戶信息修改</p><p><b> ?、?購物車管理</b></p><p>&l

29、t;b> ?、?網(wǎng)站活動信息</b></p><p>  書店后臺:本系統(tǒng)后臺在考慮書店管理操作簡便的同時,提供了強大的書店管理模式。主要包括以下幾個模塊:</p><p><b>  ① 訂單管理</b></p><p><b> ?、?商品管理</b></p><p><

30、b>  ③ 用戶管理</b></p><p><b> ?、?物流管理</b></p><p><b>  ⑤ 系統(tǒng)管理</b></p><p>  2.2.2 結(jié)構(gòu)設(shè)計</p><p><b> ?、?參與者匯總</b></p><p&g

31、t;  游 者:查看商品信息和注冊成為會員。</p><p>  會 員:查看商品信息和購買商品,修改個人信息等。</p><p>  管理員:管理商品信息,管理用戶信息等。</p><p> ?、?前臺流程:用戶登錄用戶登陸</p><p>  用戶注冊→用戶登錄→查看圖書信息→添加圖書到購物車→支付</p><p&

32、gt;<b> ?、?后臺流程:</b></p><p>  管理員登錄→訂單管理、圖書管理、用戶管理、圖片管理→退出</p><p>  網(wǎng)上購物系統(tǒng)為顧客提供一個類似于超級市場的網(wǎng)絡(luò)界面。通過網(wǎng)絡(luò)界面,用戶登錄后執(zhí)行各種操作,沒有注冊的用戶可以查找商品信息,查看首頁面的最受歡迎商品等信息。</p><p>  結(jié)構(gòu)設(shè)計簡述:開始我本想用三層

33、結(jié)構(gòu)搭建網(wǎng)站,但是在進一步考慮之后發(fā)現(xiàn)系統(tǒng)的邏輯比較簡單,并不一定要將業(yè)務(wù)邏輯單獨分離出來。于是將三層合并為兩層開發(fā),即界面層和業(yè)務(wù)邏輯層合二為一,將界面層和業(yè)務(wù)邏輯層歸為一層,業(yè)務(wù)邏輯的處理放在頁面的后臺代碼中,這樣做的好處之一是簡化開發(fā)過程,之二是加快數(shù)據(jù)訪問速度。當然這樣做也帶來了一些不便,首先是開發(fā)層次不如三層那樣清楚,界面數(shù)據(jù)和業(yè)務(wù)邏輯混雜,然后是給網(wǎng)站的后期維護以及修改帶來一定的不便,不如三層結(jié)構(gòu)修改起來容易。由于作者在畢業(yè)

34、設(shè)計期間還在專心準備專升本的課程學(xué)習(xí),加上時間比較緊促,權(quán)衡利弊,選擇將三層合并為兩層開發(fā)。</p><p><b>  第三章 數(shù)據(jù)庫設(shè)計</b></p><p>  3.1 數(shù)據(jù)庫各表關(guān)系圖</p><p><b>  圖3-1</b></p><p>  3.2 部分表字段設(shè)計及注釋</

35、p><p>  表3-1tb_GoodsInfo</p><p>  商品信息表:在添加商品和在前臺顯示商品詳細信息時用到該表,實現(xiàn)了商品的添加和顯示詳細信息的功能。</p><p>  表3-2tb_Class</p><p>  商品類型表:主要用于在添加商品類別的時候用到該表,把添加的商品類型存儲到該表中,完成商品類型的添加和調(diào)用功能。&l

36、t;/p><p>  表3-3 tb_OrderInfo</p><p>  訂單信息表:主要在管理訂單的時候用到該表完成訂單的管理功能。</p><p>  表3-4 tb_Member</p><p>  會員信息表:該表存儲了注冊的會員信息,在會員登錄和合結(jié)賬的時候會調(diào)用到該表。</p><p>  表3-5tb_A

37、dmin</p><p>  管理員信息表:主要用于后臺管理員登錄的時候調(diào)用該表完成管理員的登錄功能。</p><p>  第四章 系統(tǒng)實現(xiàn)主要技術(shù)介紹</p><p>  4.1 ASP.NET內(nèi)置對象</p><p>  下面是ASP.NET中常用對象的介紹及用法</p><p>  (1) Request 對象:

38、將用戶端輸入的數(shù)據(jù)傳遞給服務(wù)器。</p><p>  (2) Response 對象:向客戶端輸出數(shù)據(jù)。Response 和Request 可以說是一對孿生兄弟,一個負責(zé)收集,另一個負責(zé)輸出。</p><p>  (3) Application 對象:可以供全體應(yīng)用程序使用。使用Application 對象不僅可以在給定的應(yīng)用程序的所有用戶之間共享,而且可以在服務(wù)器運行期間持久地保存數(shù)據(jù)。

39、</p><p>  (4) Session 對象:供特定用戶會話使用。Session 對象與Application 對象的作用相近,使用Session 對象可以存儲特定的用戶會話所需的信息。Application 與Session 的區(qū)別在于,網(wǎng)上的用戶都可以使用Application 的對象,而Session 只是針對一個特定的客戶而已。</p><p>  (5) Server 對象

40、:提供對服務(wù)器上的方法和屬性的訪問,其中大多數(shù)方法和屬性是作為實用程序的功能服務(wù)的。最常用的方法是創(chuàng)建ActiveX 組件的實例(Server.CreateObject)。其他方法用于將URL 或HTML 編碼成字符串,將虛擬路徑映射到物理路徑以及設(shè)置腳本的超時期限。</p><p>  QueryString 集合</p><p>  QueryString 可以獲取標識在URL 后面的

41、所有返回變量及其值。在搜索引擎里面經(jīng)常用這種方法。例如,當用戶端送出如下請求時,QueryString 將會得到name 和age 兩個變量的值。</p><p>  <a href="queryString.asp?name=wuerlang&age=36"></p><p>  在上面的例子中,href="queryString.asp"指出了鏈

42、接的地址,“?”后面有兩個變量name 和age,用&把它們連接起來,它們的值分別是wuerlang 和36。</p><p>  Request 對象數(shù)據(jù)集合</p><p>  集合(collection)指的是一群放在一起的值(Value),例如當瀏覽者輸入網(wǎng)頁窗體數(shù)據(jù)并單擊【提交】按鈕之后,窗體字段的名稱與瀏覽者輸入的數(shù)據(jù)就會以一個Form 形式的集合傳給 Web 服務(wù)器。

43、例如在ASP 對象的QueryString 集合中,若要取得username 字段或userage 字段的值,可以分別寫成Request.QueryString("username")和Request.QueryString("userage") 。若是在Form 集合中, 則可以寫成Request.form("username") 和Request.form("us

44、erage")。</p><p>  Request 對象提供了5個集合:Form、QueryString、Cookies、ServerVariables 和ClientCertificate。Request 對象把客戶信息保存在幾個集合中,供ASP 使用,當不指定集合名時,以QueryString、Form、Cookie、ClientCertificate、ServerVariable 的順序搜索所有

45、集合,當發(fā)現(xiàn)第一個匹配的變量時,就認定它是要引用的成員。當然,為了提高效率,最好指定是哪個集合中的成員。</p><p>  2. Response.Redirect 方法</p><p>  Redirect 方法使瀏覽器立即重定向到程序指定的URL。這也是一種經(jīng)常用到的方法,這樣程序員就可以根據(jù)客戶的不同響應(yīng),為不同的客戶指定不同的頁面或根據(jù)不同的情況指定</p><

46、;p>  不同的頁面。一旦使用了Redirect 方法,任何在頁中顯式設(shè)置的響應(yīng)正文內(nèi)容都將被忽略。然而,此方法不向客戶端發(fā)送該頁設(shè)置的其他HTTP 標題,將產(chǎn)生一個將重定向URL</p><p>  作為鏈接包含的自動響應(yīng)正文,其語法格式如下:</p><p>  Response.Redirect URL</p><p><b>  Sessio

47、n對象</b></p><p>  可以使用 Session 對象存儲特定的用戶會話所需的信息。當用戶在應(yīng)用程序的頁之間跳轉(zhuǎn)時,存儲在Session 對象中的變量不會清除,而用戶在應(yīng)用程序中訪問頁面時,這些變量始終存在。當用戶請求來自應(yīng)用程序的Web 頁時,如果該用戶還沒有會話,則Web 服務(wù)器將自動創(chuàng)建一個Session 對象。當會話過期或被放棄后,服務(wù)器將終止該會話。通過向客戶程序發(fā)送唯一的Coo

48、kie 可以管理服務(wù)器上的Session 對象。當用戶第一次請求ASP應(yīng)用程序中的某個頁面時,ASP 要檢查HTTP頭信息,查看在報文中是否有名為ASPSESSIONID的Cookie 發(fā)送過來,如果沒有,則服務(wù)器會啟動新的會話,并為該會話生成一個全局唯一的值,再把這個值作為新ASPSESSIONID Cookie 的值發(fā)送給客戶端。正是使用這種Cookie,可以訪問存儲在服務(wù)器上的屬于客戶程序的信息。Session 對象最常見的作用就

49、是存儲用戶的首選項。例如,如果用戶指明不喜歡查看圖形,就可以將該信息存儲在Session 對象中。另外還經(jīng)常被用在鑒別客戶身份的程序中。要注意的是,會話狀態(tài)僅在支持Cookie 的瀏覽器中保留</p><p>  Session對象的主要用途是保存信息,當用戶登錄網(wǎng)站時,系統(tǒng)為其分配一個Session,只有當用戶退出時,或者Session 生命周期結(jié)束時,信息才會清除。</p><p> 

50、 4.2 ASP.NET自定義用戶控件</p><p>  就其核心而言,ASP.NET是一種以如下方式定義的基于控件的構(gòu)架:</p><p><b>  ·頁是控件</b></p><p>  ·任何控件都可以包含子控件</p><p>  ·呈現(xiàn)控件時,先呈現(xiàn)本身的內(nèi)容,然后反復(fù)呈現(xiàn)子控

51、件的內(nèi)容</p><p>  這種構(gòu)架類似于Win32API中的窗口構(gòu)架。桌面本身是一個窗口(好像Page),而且任何窗口都可以包含子窗口。呈現(xiàn)每個窗口時,首先呈現(xiàn)本身的內(nèi)容,然后呈現(xiàn)子窗口的內(nèi)容。在桌面上,窗口的呈現(xiàn)涉及在顯示器上繪制像素,ASP.NET控件的呈現(xiàn)設(shè)計生成HTML,以填入HTTP請求的部分相應(yīng)。ASP.NET的控件構(gòu)架是一種完全可擴展的框架,本章討論用于構(gòu)建自定義控件的技術(shù),創(chuàng)建真正可重用的We

52、b組件(封裝了表示和服務(wù)器交互的細節(jié))。</p><p>  asp.net中提供的增加內(nèi)嵌服務(wù)器控件的功能,使你能夠多次的輕松增加你所定義的各種控件。事實上,對于表單等各種控件,可以不用更改或者稍微更改一下就可以多次使用的。</p><p>  在通常情況下,我們把一個用作服務(wù)器控件的web表單統(tǒng)稱為用戶控件,我們用一個.ascx為后綴的文件保存起來,這樣的保存使得它不被當作一個web表

53、單來運行,當我們在一個.aspx文件中使用它時,我們用Register方法來進行調(diào)用,假設(shè)我們有一個文件名為saidy.ascx的文件,我們用下面的語句來調(diào)用它: <%@ Register TagPrefix="Acme" TagName="Message" Src="saidy.ascx" %> 上面的TagPrefix標記為用戶控件確定個唯一的名字空間,TagN

54、ame為用戶控件確定一個唯一的名稱,你也可以用其它的名字代替“Message“,Src為確定所包含的文件名稱和路徑。這樣,我們就可以用下面的語句來調(diào)用它了:</p><p>  <Acme:Message runat="server"/></p><p>  4.3 ADO.NET</p><p>  ADO.NET的名稱起源于ADO

55、(ActiveX Data Objects),這是一個廣泛的類組,用于在以往的Microsoft技術(shù)中訪問數(shù)據(jù).之所以使用ADO.NET名稱,是因為Microsoft希望表明,這是在.NET編程環(huán)境中優(yōu)先使用的數(shù)據(jù)訪問接口。</p><p>  它提供了平臺互用性和可伸縮的數(shù)據(jù)訪問。ADO.NET增強了對非連接編程模式的支持,并支持RICH XML。由于傳送的數(shù)據(jù)都是XML格式的,因此任何能夠讀取XML格式的應(yīng)用

56、程序都可以進行數(shù)據(jù)處理。事實上,接受數(shù)據(jù)的組件不一定要是ADO .NET組件,它可以是基于一個Microsoft Visual Studio的解決方案,也可以是任何運行在其它平臺上的任何應(yīng)用程序。 </p><p>  ADO.NET是一組用于和數(shù)據(jù)源進行交互的面向?qū)ο箢悗?。通常情況下,數(shù)據(jù)源是數(shù)據(jù)庫,但它同樣也能夠是文本文件、Excel表格或者XML文件。 </p><p>  ADO.

57、NET允許和不同類型的數(shù)據(jù)源以及數(shù)據(jù)庫進行交互。然而并沒有與此相關(guān)的一系列類來完成這樣的工作。因為不同的數(shù)據(jù)源采用不同的協(xié)議,所以對于不同的數(shù)據(jù)源必須采用相應(yīng)的協(xié)議。一些老式的數(shù)據(jù)源使用ODBC協(xié)議,許多新的數(shù)據(jù)源使用OleDb協(xié)議,并且現(xiàn)在還不斷出現(xiàn)更多的數(shù)據(jù)源,這些數(shù)據(jù)源都可以通過.NET的ADO.NET類庫來進行連接。 </p><p>  ADO.NET提供與數(shù)據(jù)源進行交互的相關(guān)的公共方法,但是對于不同的

58、數(shù)據(jù)源采用一組不同的類庫。這些類庫稱為Data Providers,并且通常是以與之交互的協(xié)議和數(shù)據(jù)源的類型來命名的。</p><p>  ADO.NET包含的類</p><p>  1、Connection 類</p><p>  和數(shù)據(jù)庫交互,你必須連接它。連接幫助指明數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫名字、用戶名、密碼,和連接數(shù)據(jù)庫所需要的其它參數(shù)。Connection對象

59、會被Command對象使用,這樣就能夠知道是在哪個數(shù)據(jù)源上面執(zhí)行命令。 </p><p>  與數(shù)據(jù)庫交互的過程意味著你必須指明想要執(zhí)行的操作。這是依靠Command對象執(zhí)行的。你使用Command對象來發(fā)送SQL語句給數(shù)據(jù)庫。Command對象使用Connection對象來指出與哪個數(shù)據(jù)源進行連接。你能夠單獨使用Command對象來直接執(zhí)行命令,或者將一個Command對象的引用傳遞給DataAdapter,它

60、保存了一組能夠操作下面描述的一組數(shù)據(jù)的命令。 </p><p>  2、Command對象</p><p>  成功于數(shù)據(jù)建立連接后,就可以用Command對象來執(zhí)行查詢、修改、插入、刪除等命令; Command對象常用的方法有ExecuteReader方法、ExecuteScalar()方法和ExecuteNonQuery()方法;插入數(shù)據(jù)可用ExecuteNonQuery()方法來執(zhí)行

61、插入命令。 </p><p>  3、DataReader類</p><p>  許多數(shù)據(jù)操作要求你只是讀取一串數(shù)據(jù)。DataReader對象允許你獲得從Command對象的SELECT語句得到的結(jié)果??紤]性能的因素,從DataReader返回的數(shù)據(jù)都是快速的且只是“向前”的數(shù)據(jù)流。這意味著你只能按照一定的順序從數(shù)據(jù)流中取出數(shù)據(jù)。這對于速度來說是有好處的,但是如果你需要操作數(shù)據(jù),更好的辦法

62、是使用DataSet。 </p><p>  4、DataSet對象</p><p>  DataSet對象是數(shù)據(jù)在內(nèi)存中的表示形式。它包括多個DataTable對象,而DataTable包含列和行,就象一個普通的數(shù)據(jù)庫中的表。你甚至能夠定義表之間的關(guān)系來創(chuàng)建主從關(guān)系(parent-child relationships)。DataSet是在特定的場景下使用――幫助管理內(nèi)存中的數(shù)據(jù)并支持對

63、數(shù)據(jù)的斷開操作的。DataSet是被所有Data Providers使用的對象,因此它并不像Data Provider一樣需要特別的前綴。 </p><p>  5、DataAdapter類</p><p>  某些時候你使用的數(shù)據(jù)主要是只讀的,并且你很少需要將其改變至底層的數(shù)據(jù)源。同樣一些情況要求在內(nèi)存中緩存數(shù)據(jù),以此來減少并不改變的數(shù)據(jù)被數(shù)據(jù)庫調(diào)用的次數(shù)。DataAdapter通過斷開

64、模型來幫助你方便的完成對以上情況的處理。當在一單批次的對數(shù)據(jù)庫的讀寫操作的持續(xù)的改變返回至數(shù)據(jù)庫的時候,DataAdapter 填充(fill)DataSet對象。DataAadapter包含對連接對象以及當對數(shù)據(jù)庫進行讀取或者寫入的時候自動的打開或者關(guān)閉連接的引用。另外,DataAdapter包含對數(shù)據(jù)的SELECT、INSERT、UPDATE和DELETE操作的Command對象引用。你將為DataSet中的每一個Table都定義D

65、ataAadapter,它將為你照顧所有與數(shù)據(jù)庫的連接。所有你將做的工作是告訴DataAdapter什么時候裝載或者寫入到數(shù)據(jù)庫。 </p><p>  6、DataTable類</p><p>  DataTable 是一個數(shù)據(jù)網(wǎng)格控件。它可以被應(yīng)用在 VB 和 ASP 上。它無須代碼就可以簡單的綁定數(shù)據(jù)庫。它具有微軟風(fēng)格的用戶界面。</p><p>  7、AD

66、O.NET是與數(shù)據(jù)源交互的.NET技術(shù)。有許多的Data Providers,它將允許與不同的數(shù)據(jù)源交流――取決于它們所使用的協(xié)議或者數(shù)據(jù)庫。然而無論使用什么樣的Data Provider,你將使用相似的對象與數(shù)據(jù)源進行交互。SqlConnection對象管理與數(shù)據(jù)源的連接。SqlCommand對象允許你與數(shù)據(jù)源交流并發(fā)送命令給它。為了對進行快速的只“向前”地讀取數(shù)據(jù),使用SqlDataReader。如果想使用斷開數(shù)據(jù),使用DataSe

67、t并實現(xiàn)能進行讀取或者寫入數(shù)據(jù)源的SqlDataAdapter。</p><p>  第五章 系統(tǒng)部分功能展示及其實現(xiàn)代碼</p><p>  5.1 部分界面展現(xiàn)</p><p><b> ?。?)前臺主界面</b></p><p><b>  圖5-1</b></p><p&

68、gt;<b>  (2)購物車</b></p><p><b>  圖5-2</b></p><p><b> ?。?)后臺首頁</b></p><p><b>  圖5-3</b></p><p><b> ?。?)訂單管理</b>

69、</p><p><b>  圖5-4</b></p><p><b>  (5)物流管理</b></p><p><b>  圖5-5</b></p><p><b> ?。?)普通會員管理</b></p><p><b&g

70、t;  圖5-6</b></p><p><b> ?。?)管理員管理</b></p><p><b>  圖5-7</b></p><p>  5.2 新用戶注冊和用戶登陸</p><p><b> ?。?)前臺登陸</b></p><p>

71、;<b>  圖5-8</b></p><p>  這里的登陸界面是用自定義用戶控件實現(xiàn)的,其后臺代碼如下:</p><p><b>  登陸按鈕事件:</b></p><p>  protected void btnLoad_Click(object sender, EventArgs e)</p><

72、;p><b>  {</b></p><p>  Session["UID"] = null ;</p><p>  Session["Username"] = null ;</p><p>  if (txtName.Text.Trim() == "" || txtPasswo

73、rd.Text.Trim () == "")</p><p><b>  {</b></p><p>  Response.Write("<script>alert(登錄名和密碼不能為空!');location='javascript:history.go(-1)';</script>&qu

74、ot;);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if (txtValid.Text.Trim() == lbValid.Text.Trim())</p>

75、<p><b>  {</b></p><p>  int P_Int_IsExists = uiObj.UserExists(txtName.Text.Trim(), txtPassword.Text.Trim());</p><p>  if (P_Int_IsExists == 100)</p><p><b>  {

76、</b></p><p>  DataSet ds = uiObj.ReturnUIDs(txtName.Text.Trim(), txtPassword.Text.Trim(), "UserInfo");</p><p>  Session["UID"] = Convert.ToInt32(ds.Tables["UserInf

77、o"].Rows[0][0].ToString());</p><p>  Session["Username"] = ds.Tables["UserInfo"].Rows[0][1].ToString();</p><p>  Response.Redirect("index.aspx");</p>&l

78、t;p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Response.Write("<script>alert('您的登錄有誤,請核對后再重新登錄!);location='

79、javascript:history.go(-1)';</script>");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {&

80、lt;/b></p><p>  Response.Write("<script>alert('請正確輸入驗證碼!');location='javascript:history.go(-1)';</script>"); </p><p><b>  }</b><

81、;/p><p><b>  }</b></p><p><b>  }</b></p><p><b> ?。?)會員注冊</b></p><p><b>  圖5-9</b></p><p><b>  保存按鈕代碼:<

82、;/b></p><p>  protected void btnSave_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  if (txtPostCode.Text.Trim() == "" && txtPassword.T

83、ext.Trim()=="")</p><p><b>  {</b></p><p>  Response.Write("<script>alert('請輸入完整信息!');location='javascript:history.go(-1)';</script>");

84、</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  { </b></p><p>  bool P_Bl_Sex;</p><p>  if(Convert.ToInt32(ddlSex.S

85、electedItem.Value.Trim())==1)</p><p><b>  {</b></p><p>  P_Bl_Sex =true ;</p><p><b>  }</b></p><p><b>  else </b></p><p&g

86、t;<b>  {</b></p><p>  P_Bl_Sex =false ;</p><p><b>  }</b></p><p>  G_Int_MemberID = uiObj.AddUInfo(txtName.Text.Trim(), P_Bl_Sex, txtPassword.Text.Trim(), tx

87、tTrueName.Text.Trim(), "", "", txtPhone.Text.Trim(), txtEmail.Text.Trim(), ddlCity.SelectedItem.Text.Trim(), txtAddress.Text.Trim(), txtPostCode.Text.Trim());</p><p>  Session["Usern

88、ame"] = "";</p><p>  Session["Username"] =txtName.Text.Trim();</p><p>  Response.Write("<script>alert('恭喜您,注冊成功!');location='index.aspx'</s

89、cript>");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  后臺登陸界面:</b></p><p><b>  圖5-10</b></p><p>

90、<b>  登陸按鈕代碼:</b></p><p>  protected void btnLogin_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  if (txtAdminName.Text.Trim() == "" |

91、| txtAdminPwd.Text.Trim() == "")</p><p><b>  {</b></p><p>  Response.Write("<script>alert('登錄名和密碼不能為空!);location='javascript:history.go(-1)';</scr

92、ipt>");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if (txtAdminCode.Text.Trim() == labCode.Text.Trim(

93、))</p><p><b>  {</b></p><p>  int P_Int_IsExists = mcObj.AExists(txtAdminName.Text.Trim(), txtAdminPwd.Text.Trim());</p><p>  if (P_Int_IsExists == 100)</p><p

94、><b>  {</b></p><p>  DataSet ds = mcObj.ReturnAIDs(txtAdminName.Text.Trim(), txtAdminPwd.Text.Trim(), "AInfo");</p><p>  Session["AID"] = Convert.ToInt32(ds.Ta

95、bles["AInfo"].Rows[0][0].ToString());</p><p>  Session["Aname"] = ds.Tables["AInfo"].Rows[0][1].ToString();</p><p>  //Response.Write("<script language=java

96、script>window.open('AdminIndex.aspx');window.close();</script>");</p><p>  Response.Redirect("AdminIndex.aspx");</p><p>  Response.Write("<script language

97、=javascript>window.close();</script>");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Response.Wri

98、te("<script>alert('您輸入的用戶名或密碼錯誤,請重新輸入!');location='javascript:history.go(-1)';</script>");</p><p><b>  }</b></p><p><b>  }</b></p

99、><p><b>  else</b></p><p><b>  {</b></p><p>  Response.Write("<script>alert('驗證碼輸入有誤,請重新輸入!');location='javascript:history.go(-1)';&l

100、t;/script>");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  5.3 后臺管理功能</p><p>  以商品管理為例,會員管理,物

101、流管理代碼都與其類似,下面不再贅述:</p><p><b>  圖5-11</b></p><p><b>  添加商品</b></p><p><b>  圖5-12</b></p><p><b>  保存按鈕事件:</b></p>&

102、lt;p>  protected void btnSave_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  if (txtName.Text == "" || txtBrand.Text == "" || txtUnit.Text == &qu

103、ot;" || txtWeight.Text == "" || txtMemberPrice.Text == "" || txtMarketPrice.Text == "")</p><p><b>  {</b></p><p>  Response.Write("<script&

104、gt;alert('請輸入必要的信息')</script>");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  { </b></p><p>  bool Isrefine

105、ment ;</p><p>  bool IsHot;</p><p>  bool IsDisCount;</p><p>  if(cbxCommend.Checked ==true)</p><p><b>  {</b></p><p>  Isrefinement =true ;<

106、;/p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Isrefinement =false ;</p><p><b>  }</b><

107、/p><p>  if(cbxHot.Checked==true)</p><p><b>  {</b></p><p>  IsHot=true;</p><p><b>  }</b></p><p><b>  else </b></p>

108、<p><b>  {</b></p><p>  IsHot =false ;</p><p><b>  }</b></p><p>  if(cbxDiscount.Checked ==true)</p><p><b>  {</b></p>

109、<p>  IsDisCount=true ;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  IsDisCount =false ;</p><p

110、><b>  }</b></p><p>  int P_Int_returnValue = mcObj.AddGInfo(Convert.ToInt32(ddlCategory.SelectedItem.Value.ToString()), txtName.Text.Trim(), txtShortDesc.Text.Trim(), txtBrand.Text.Trim(), txt

111、Unit.Text.Trim(), float.Parse (txtWeight.Text.Trim()), ddlUrl.SelectedItem.Value.Trim(), float.Parse(txtMarketPrice.Text.Trim()), float.Parse(txtMemberPrice.Text.Trim()), Isrefinement, IsHot, IsDisCount);</p><

112、p>  if (P_Int_returnValue == -100)</p><p><b>  {</b></p><p>  Response.Write("<script>alert('該商品已存在!');</script>");</p><p><b>  }&

113、lt;/b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Response.Write("<script>alert('添加成功|!');window.location.href='Product.aspx&#

114、39;</script>");</p><p><b>  }</b></p><p><b>  }</b></p><p>  5.4 隨機產(chǎn)生驗證碼代碼</p><p>  public string RandomNum(int n) //</p><

115、p><b>  {</b></p><p>  string strchar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";</p><p

116、>  string[] VcArray = strchar.Split(',');</p><p>  string VNum = ""; //</p><p>  int temp = -1; //記錄上次隨機數(shù)值,盡量避免產(chǎn)生幾個一樣的隨機數(shù)</p>

117、<p>  //采用一個簡單的算法以保證生成隨機數(shù)不同</p><p>  Random rand = new Random();</p><p>  for (int i = 1; i < n + 1; i++)</p><p><b>  {</b></p><p>  if (temp != -1

118、)</p><p><b>  {</b></p><p>  rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks));</p><p><b>  }</b></p><p>  int t = rand.Next(61);

119、</p><p>  if (temp != -1 && temp == t)</p><p><b>  {</b></p><p>  return RandomNum(n);</p><p><b>  }</b></p><p><b>  

120、temp = t;</b></p><p>  VNum += VcArray[t];</p><p><b>  }</b></p><p>  return VNum;//返回生成的隨機數(shù)</p><p><b>  }</b></p><p>  5.5 數(shù)

121、據(jù)訪問核心類部分代碼</p><p>  DBClass.cs</p><p>  MangerClass.cs</p><p>  UserInfoClass.cs</p><p><b>  重要方法:</b></p><p>  /// <summary></p>

122、<p><b>  /// 數(shù)據(jù)庫連接</b></p><p>  /// </summary></p><p>  /// <returns>SqlConnection對象</returns></p><p>  public SqlConnection GetConnection()</p

123、><p><b>  {</b></p><p>  string myStr = ConfigurationManager.AppSettings["ConnectionString"].ToString();</p><p>  SqlConnection myConn = new SqlConnection(myStr);

124、</p><p>  return myConn;</p><p><b>  }</b></p><p>  /// <summary></p><p>  /// 判斷用戶是否存在</p><p>  /// </summary></p><p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論