

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 時(shí)代在進(jìn)步,科技在發(fā)展,當(dāng)今時(shí)代網(wǎng)絡(luò)已經(jīng)成了我們生活中一個(gè)不可或缺的部分。網(wǎng)絡(luò)的發(fā)展也給我們帶來了無限的商機(jī)與便利,有人可以足不出戶就賺錢,有人可以足不出戶就買到想買的東西、訂票等等。在餐飲業(yè),網(wǎng)絡(luò)也同樣能夠發(fā)揮它巨大的作用—網(wǎng)上訂餐管理系統(tǒng)。</p><p> 網(wǎng)上訂餐管理系統(tǒng)旨在通過網(wǎng)站的形式實(shí)現(xiàn)想
2、要訂餐的用戶的訂餐過程。本課題基于Web2.0,使用ASP.NET2.0實(shí)現(xiàn)B/S模式的訂餐系統(tǒng)。用戶通過訪問餐館的網(wǎng)站就能夠看到該餐館的菜肴種類、價(jià)格等信息,從而做出訂餐的決定,然后使用唯一的賬號登陸,通過一定的支付方式來付款,僅需幾分鐘就完成了一次訂餐。而餐館也能夠及時(shí)地看到用戶在自己餐館網(wǎng)站上下的訂單,從容準(zhǔn)備,及時(shí)送達(dá)用戶指定的就餐地點(diǎn)。相比一般的電話訂餐方式,網(wǎng)上訂餐不僅給用戶節(jié)省了大量電話詢問時(shí)間和電話費(fèi),也為餐館提供了收款
3、保障,餐館可以選擇網(wǎng)上銀行或是充值系統(tǒng)等的預(yù)先付款方式,也可以選擇貨到付款的方式。在信息的準(zhǔn)確性方面,網(wǎng)上訂餐也比電話訂餐高出一等,網(wǎng)上訂餐則是由用戶自己填寫,不太容易造成錯(cuò)誤。</p><p> 關(guān)鍵詞:網(wǎng)上訂餐,B/S</p><p><b> ABSTRACT</b></p><p> When the era is going a
4、head, the technology developing quickly, the Internet has become a prerequisite part of our life. The development of the internet has brought us infinite opportunity of business and advantages of life. People can earn, b
5、uy things they need, order tickets and so on without going out. In the eatery area the internet can also play an important role which can be called” The System of Dinner-Order through the Internet”.</p><p>
6、 “The system of dinner-order through the Internet“aims at realizing the process of dinner order in the form of website. This paper bases on Web2.0; uses ASP.NET 2.0 to realize the system of dinner-order through the inter
7、net of B/S module. The user who wants to order dinners can see the information of dish such as kinds, price, and introduction through suffering the website which contains the system, and then decides to order or not. Aft
8、er entering the system with his unique account, paying for th</p><p> Key Words: Dinner-Order through the internet, B/S</p><p><b> 目 錄</b></p><p><b> 1. 引言1
9、</b></p><p><b> 1.1項(xiàng)目背景1</b></p><p> 1.2國內(nèi)外現(xiàn)狀1</p><p><b> 1.3項(xiàng)目意義2</b></p><p> 2. 相關(guān)技術(shù)介紹3</p><p> 2.1 Web 2.0技術(shù)3<
10、;/p><p> 2.2 ASP.NET技術(shù)5</p><p> 2.3 AJAX技術(shù)6</p><p> 2.4 SQL Server 2005技術(shù)8</p><p> 3. 系統(tǒng)功能分析與概要設(shè)計(jì)10</p><p> 3.1 功能分析10</p><p> 3.2 界面設(shè)
11、計(jì)16</p><p> 3.3 數(shù)據(jù)庫設(shè)計(jì)17</p><p> 4. 系統(tǒng)詳細(xì)設(shè)計(jì)與編碼實(shí)現(xiàn)21</p><p> 4.1 管理員模塊21</p><p> 4.2 會員模塊26</p><p> 4.3 公共模塊30</p><p> 5. 系統(tǒng)測試31</
12、p><p> 5.1 測試計(jì)劃制定31</p><p> 5.2 測試用例設(shè)計(jì)與執(zhí)行31</p><p> 5.3 測試報(bào)告33</p><p><b> 6. 總結(jié)36</b></p><p><b> 致謝37</b></p><p&g
13、t;<b> 參考文獻(xiàn)38</b></p><p><b> 1. 引言</b></p><p><b> 1.1項(xiàng)目背景</b></p><p> 時(shí)代在進(jìn)步,科技在發(fā)展,當(dāng)今時(shí)代網(wǎng)絡(luò)已經(jīng)成了我們生活中一個(gè)不可或缺的部分。網(wǎng)絡(luò)的發(fā)展也給我們帶來了無限的商機(jī)與便利,有人可以足不出戶就賺錢,有
14、人可以足不出戶就買到想買的東西、訂票等等。在餐飲業(yè),網(wǎng)絡(luò)也同樣能夠發(fā)揮它巨大的作用—網(wǎng)上訂餐管理系統(tǒng)。</p><p> “民以食為天”,餐飲業(yè)系百業(yè)之首。中國加入WTO后,我國餐飲業(yè)己形成了高中低檔多層次,東西南北菜系多樣化,中西餐相互補(bǔ)充的格局。與此同時(shí),一些先進(jìn)的餐飲管理技術(shù)也進(jìn)入中國。目前,網(wǎng)絡(luò)熱潮正沖擊著我們生活的方方面面。具體到餐飲業(yè)網(wǎng)絡(luò)營銷,網(wǎng)上訂餐是一種主要的形式。網(wǎng)上訂餐分為兩種類型,一種是通
15、過英特網(wǎng)預(yù)訂某飯店的席位及菜品,另外一種是通過英特網(wǎng)預(yù)訂某飯店的菜品,并由該餐廳負(fù)責(zé)送貨上門。本課題就是要實(shí)現(xiàn)后者,通過實(shí)現(xiàn)網(wǎng)上訂餐,以期能從互聯(lián)網(wǎng)技術(shù)方面為餐飲業(yè)提供強(qiáng)大的動力,促進(jìn)餐飲業(yè)的蓬勃發(fā)展。</p><p><b> 1.2國內(nèi)外現(xiàn)狀</b></p><p> 在我國,網(wǎng)上訂餐最早出現(xiàn)在20世紀(jì)90年代末期,98年廣州等大城市己出現(xiàn)網(wǎng)上訂餐業(yè)務(wù)。200
16、0年7月,北京麗華快餐公司為了探索餐飲業(yè)網(wǎng)絡(luò)經(jīng)營的道路,尋求新的經(jīng)濟(jì)增長點(diǎn),也推出了網(wǎng)上訂餐,成為探索網(wǎng)上訂餐的先驅(qū)。</p><p> 2003年非典之后,為盡快恢復(fù)遭受非典疫情嚴(yán)重影響的餐飲業(yè)和住宿業(yè)的發(fā)展,全面振興我國餐飲業(yè)和住宿業(yè)。2003年7月30日,商務(wù)部制訂了《全國餐飲業(yè)和住宿業(yè)振興計(jì)劃》,開展網(wǎng)上訂餐服務(wù)等拓展服務(wù)領(lǐng)域措施作為振興計(jì)劃的主要內(nèi)容被提了出來。隨后,一些餐飲公司紛紛在自己的網(wǎng)站上開設(shè)
17、了網(wǎng)上訂餐業(yè)務(wù)。</p><p> 目前網(wǎng)上訂餐已逐漸普及,特別是在快餐業(yè)發(fā)達(dá)的東部地區(qū)。但目前網(wǎng)上訂餐在我國并未成氣候,很多大的餐飲公司網(wǎng)上訂餐業(yè)務(wù)經(jīng)營慘淡,很多網(wǎng)站每天只有幾十份,經(jīng)營較好的也只有幾百份。如果單純依靠網(wǎng)上訂餐,公司根本無法生存。相反,一些小的個(gè)體飲食店老板巧妙地利用QQ、MSN等即時(shí)通信軟件作為網(wǎng)上訂餐工具,卻取得了相當(dāng)不錯(cuò)的效益。他們隨著網(wǎng)上訂餐業(yè)務(wù)的擴(kuò)大,建立了自己的訂餐網(wǎng)站,但最初單純
18、的網(wǎng)上訂餐卻發(fā)展成了網(wǎng)上送花、網(wǎng)上送票等的網(wǎng)上送貨網(wǎng)站或者綜合類的飲食網(wǎng)站,已經(jīng)偏離了網(wǎng)上訂餐的初衷[4]。</p><p> 在美國,食品網(wǎng)(www.food.com)是目前美國網(wǎng)上訂餐行業(yè)中的先驅(qū)。設(shè)在三藩市的食品網(wǎng)在99年已服務(wù)于全美一萬三千間餐館,有七十萬的網(wǎng)上消費(fèi)者。任何消費(fèi)者只要輕松上網(wǎng),輸入郵區(qū)號碼,就可以了解到在周圍有哪些餐館提供網(wǎng)上送餐服務(wù),并可以瀏覽到這些餐館的菜單,做出預(yù)訂。僅在二分鐘內(nèi),
19、預(yù)訂者就可以通過電子郵件得到確定。再過一會,就可以收到所訂的美食了。食品網(wǎng)發(fā)言人說:在參加該公司網(wǎng)上聯(lián)網(wǎng)銷售的餐館中,網(wǎng)上訂餐的數(shù)量實(shí)際上比普通的電話訂餐高出22%。此外,網(wǎng)上訂餐中多功能性的服務(wù)還可以讓消費(fèi)者從容地上網(wǎng)瀏覽餐館的菜單,或進(jìn)行價(jià)格上的比較,來選擇所需要的美食佳肴。目前,通過上網(wǎng)提供外賣和送餐服務(wù)的餐廳多于獨(dú)立餐館經(jīng)營者,外賣與送餐服務(wù)占餐飲生意額的一半以上。全美餐飲消費(fèi)者越來越趨向于使用網(wǎng)上訂餐的形式來購買外賣,特別是年
20、輕一族的消費(fèi)者。顯而易見,網(wǎng)上訂餐將成為餐館業(yè)擴(kuò)大生意的金礦源,有眼光的餐館業(yè)主應(yīng)該盡早考慮如何利用英特網(wǎng)上網(wǎng)銷售。對于網(wǎng)上預(yù)訂餐位,三藩市一家餐廳的總經(jīng)理說該餐廳每周至少可以接到20個(gè)網(wǎng)上訂餐。不過,他認(rèn)為網(wǎng)上訂餐最有價(jià)值的地方是大大地方便了消費(fèi)者。因?yàn)槿绻ㄟ^電話訂餐,</p><p> 總的說來,單獨(dú)的網(wǎng)上訂餐還不足以支撐網(wǎng)站的經(jīng)營。目前的狀況是規(guī)模大的不盈利,小的有盈利。原因是規(guī)模大的范圍廣,運(yùn)營成本高
21、,規(guī)模小的由于運(yùn)營成本低,客戶群相對穩(wěn)定,故有一定的利潤空間。</p><p><b> 1.3項(xiàng)目意義</b></p><p> 網(wǎng)上訂餐業(yè)務(wù)的興起, 折射出餐飲業(yè)善抓機(jī)遇、搶占利潤第二落點(diǎn)的經(jīng)營理念,同時(shí)也顯示出消費(fèi)者在日常所需中, 運(yùn)用網(wǎng)絡(luò)觀念的意識正逐漸增強(qiáng)。但比起如今火爆的網(wǎng)上購物, 網(wǎng)上訂酒店住宿等服務(wù), 網(wǎng)上訂餐服務(wù)在一些餐飲企業(yè)中仍未引起足夠的重視
22、, 對于消費(fèi)者來說, 許多人對這一新興業(yè)務(wù)尚缺乏了解。但因這種消費(fèi)方式順應(yīng)了當(dāng)前信息社會的快捷、便利等趨勢, 網(wǎng)上訂餐仍存在著廣闊的發(fā)展空間。網(wǎng)上訂餐的發(fā)展也將給餐飲業(yè)帶來勃勃的生機(jī)。</p><p><b> 2. 相關(guān)技術(shù)介紹</b></p><p> 2.1 Web 2.0技術(shù)</p><p> Web2.0的概念最早是去年在美國提
23、出來的,通過Blog口口相傳,網(wǎng)上很多IT人士試圖都在給 Web2.0 一個(gè)具體的定義,事實(shí)上卻很難。</p><p> 2.1.1 Web2.0 概述</p><p> Web2.0是為了區(qū)別于過往的以門戶為代表的 Web1.0的稱呼,Web2.0只是一個(gè)符號,它表明的是正在變化中的互聯(lián)網(wǎng),這些變化相輔相成,彼此聯(lián)系在一起,它讓社會性、用戶、參與和創(chuàng)作這些元素浮出水面成為互聯(lián)網(wǎng)文化的
24、中堅(jiān)力量。</p><p> Web2.0的最大特點(diǎn)是個(gè)人化、去中心化,同時(shí)強(qiáng)調(diào)社會化,強(qiáng)調(diào)開放、共享, 強(qiáng)調(diào)參與、創(chuàng)造?;旧蟇eb2.0的絕大部分服務(wù)都存在一個(gè)個(gè)人標(biāo)識明確的頁面。Web2.0的最大改變就是普通人開始改變、創(chuàng)造網(wǎng)絡(luò),草根性質(zhì)的、或者說更準(zhǔn)確的說法是非專業(yè)、業(yè)余性質(zhì)的參與。需要說明的是草根并不是是社會底層。 Web2.0要凸現(xiàn)每個(gè)用戶的價(jià)值,每個(gè)人在互聯(lián)網(wǎng)上都可以創(chuàng)造自己的價(jià)值。</p&
25、gt;<p> 2.1.2 Web2.0的技術(shù)與典型應(yīng)用</p><p> RSS ,這個(gè)是Web2.0標(biāo)桿式的技術(shù),它以XML為基礎(chǔ),是站點(diǎn)用來和其他站點(diǎn)之間共享內(nèi)容的一種簡易方式(也叫聚合內(nèi)容),通常被用于新聞和其他按順序排列的網(wǎng)站, 例如Blog。一段項(xiàng)目的介紹可能包含新聞的全部介紹等?;蛘邇H僅是額外的內(nèi)容或者簡短的介紹。這些項(xiàng)目的鏈接通常都能鏈接到全部的內(nèi)容。網(wǎng)絡(luò)用戶可以在客戶端借助于支
26、持RSS的新聞聚合工具軟件( 例如 Sharp Reader, News Crawler, Feed Demon),在不打開網(wǎng)站內(nèi)容頁面的情況下閱讀支持RSS輸出的網(wǎng)站內(nèi)容。網(wǎng)站提供RSS輸出,有利于讓用戶發(fā)現(xiàn)網(wǎng)站內(nèi)容的更新。</p><p> XML ,Web2.0的基礎(chǔ)技術(shù),原來作為HTML的父集出現(xiàn),現(xiàn)在以其為基礎(chǔ)的周邊應(yīng)用越來越多,比如XSL、RSS、Ajax 等。</p><p&g
27、t; Ajax ,很舊的技術(shù),采用 Javascript+XML,克服了以往頁面更新請求將所有頁面內(nèi)容重新提交到了服務(wù)器, 然后再由服務(wù)器重新升成整個(gè)頁面的低效率方式,Ajax通過XML技術(shù)將只向服務(wù)器請求更新的數(shù)據(jù),然后通過Javascript 技術(shù)在客戶端運(yùn)算生成整個(gè)頁面, 這種技術(shù)可以提高數(shù)據(jù)傳輸效率,增強(qiáng)用戶體驗(yàn)。</p><p> Trackback ,Trackback中文稱作“引用通告”,簡稱“
28、引用”。用處就是通知被你所引用的日志,你引用了它。這樣Blog之間就通過Trackback互相連接了起來,因此有人將之稱為“思想的橋梁”。</p><p> Tag ,Tag是什么,網(wǎng)上目前也沒有一個(gè)準(zhǔn)確的說法,但是大家都能按照自己的方式去用,其實(shí)Tag就是一個(gè)文章或者一個(gè)Blog的標(biāo)簽,這個(gè)標(biāo)簽命名可以來自關(guān)鍵詞,也可以來自分類,作為關(guān)鍵詞標(biāo)記,你可以用幾個(gè)關(guān)鍵詞來概括你的文章或者Blog,這個(gè)關(guān)鍵詞可以是文
29、章中出現(xiàn)過的,也可以是沒有的,作為分類標(biāo)記,Tag又不同于一般的目錄結(jié)構(gòu)的分類方法,可以自由地不考慮目錄結(jié)構(gòu)的給文章進(jìn)行分類,各個(gè)Tag之間的關(guān)系是一種平行的關(guān)系但是又可以根據(jù)相關(guān)性分析,將經(jīng)常一起出現(xiàn)的Tag關(guān)聯(lián)起來,而產(chǎn)生一種相關(guān)性的分類。前面我們提到的RSS、Ajax和Trackback也可以說是Web2.0的Tag。</p><p> Blog ,Web2.0時(shí)代最典型代表的應(yīng)用就是Blog,Blog是
30、Weblog的簡寫,翻譯成中文叫網(wǎng)上日志,Blog是一種平臺,也是一種技術(shù),更是一種思潮,Blog是管理個(gè)人內(nèi)容的一種工具。Blog是以 WEB( 網(wǎng)頁)方式顯示和發(fā)布,借助于互聯(lián)網(wǎng),人們就可以彼此分享自己的經(jīng)驗(yàn)、想法、感受等,并由此形成一種新型的網(wǎng)絡(luò)虛擬社群和人際交往方式。</p><p> Wiki ,Wiki一詞來源于夏威夷語的“weekee”,原本是“快點(diǎn)”的意思。在這里 Wiki指的是一種網(wǎng)上共同協(xié)作
31、的超文本系統(tǒng),可由多人共同對網(wǎng)站內(nèi)容進(jìn)行維護(hù)和更新。我們可以通過網(wǎng)頁瀏覽器對Wiki文本進(jìn)行瀏覽、創(chuàng)建、更改,而且創(chuàng)建、更改、發(fā)布的代價(jià)遠(yuǎn)比HTML文本為小,您并不需要懂得HYTML代碼,只要簡單了解少量的Wiki的語法的約定,您就可以在系統(tǒng)中發(fā)布您的頁面。與其它超文本系統(tǒng)相比,Wiki有使用方便及開放的特點(diǎn),所以Wiki系統(tǒng)可以幫助我們在一個(gè)社群內(nèi)共同收集、創(chuàng)作某領(lǐng)域的知識,發(fā)布大家都關(guān)心和感興趣的話題。</p><
32、;p> SNS ,SNS即Social network software的英文縮寫, 即社會性網(wǎng)絡(luò)軟件, 社會性網(wǎng)絡(luò)軟件依據(jù)六度理論,以認(rèn)識朋友的朋友為基礎(chǔ),擴(kuò)展自己的人脈。并且無限擴(kuò)張自己的人脈,在需要的時(shí)候,可以隨時(shí)獲取一點(diǎn),得到該人脈的幫助。SNS網(wǎng)站,就是依據(jù)六度理論建立的網(wǎng)站,幫你運(yùn)營朋友圈的朋友。六度關(guān)系理論:美國著名社會心理學(xué)家米爾格倫 (Stanley Milgram)于20 世紀(jì)60年代最先提出,在人際脈絡(luò)中,
33、要結(jié)識任何一位陌生的朋友,這中間最多只要通過六個(gè)朋友就能達(dá)到目的。就是說你想認(rèn)識一個(gè)人,托朋友找朋友,找認(rèn)識他的人,之間不會超過六個(gè)人。</p><p> 網(wǎng)摘 , 網(wǎng)摘就是一種在網(wǎng)上保存網(wǎng)頁鏈接的服務(wù),通俗的說就是一個(gè)放在網(wǎng)絡(luò)上的海量收藏夾。網(wǎng)摘服務(wù)作為一種個(gè)人的信息整理平臺,基于它在網(wǎng)絡(luò)上的這一獨(dú)特的優(yōu)勢,它能提供很多本地收藏夾所不能提供的功能。其核心價(jià)值已經(jīng)從保存瀏覽的網(wǎng)頁,發(fā)展成了一個(gè)新的信息共享的中心
34、,能夠真正做到“共享中收藏、收藏中分享”。如果每日使用網(wǎng)摘的用戶數(shù)量較大,用戶每日提供的鏈接收藏?cái)?shù)量足夠,網(wǎng)摘站就成了匯集各種新聞鏈接的門戶網(wǎng)站。國外代表網(wǎng)站有Delicious,國內(nèi)有365key.com。</p><p> Podcast,中文譯名尚未統(tǒng)一,但最多的是將其翻譯為“播客”。它是數(shù)字廣播技術(shù)的一種, 出現(xiàn)初期借助一個(gè)叫“iPodder”的軟件與一些便攜播放器相結(jié)合而實(shí)現(xiàn)。Podcasting錄制
35、的是網(wǎng)絡(luò)廣播或類似的網(wǎng)絡(luò)聲訊節(jié)目,網(wǎng)友可將網(wǎng)上的廣播節(jié)目下載到自己的 iPod、MP3播放器或其它便攜式數(shù)碼聲訊播放器中隨身收聽,不必端坐電腦前,也不必實(shí)時(shí)收聽,享受隨時(shí)隨地的自由。更有意義的是,你還可以自己制作聲音節(jié)目,并將其上傳到網(wǎng)上與廣大網(wǎng)友分享。就像博客顛覆了被動接受文字信息的方式一樣,播客顛覆了被動收聽廣播的方式,使聽眾成為主動參與者。</p><p> IM,即時(shí)通訊(Instant Messeng
36、er,簡稱IM)軟件可以說是目前我國上網(wǎng)用戶使用率最高的軟件。聊天一直是網(wǎng)民們上網(wǎng)的主要活動之一,網(wǎng)上聊天的主要工具已經(jīng)從初期的聊天室、論壇變?yōu)橐訫SN、QQ為代表的即時(shí)通訊軟件。大部分人只要上網(wǎng)就會開著自己的MSN或QQ。作為使用頻率最高的網(wǎng)絡(luò)軟件,即時(shí)聊天已經(jīng)突破了作為技術(shù)工具的極限,被認(rèn)為是現(xiàn)代交流方式的象征,并構(gòu)建起一種新的社會關(guān)系。它是迄今為止對人類社會生活改變最為深刻的一種網(wǎng)絡(luò)新形態(tài),沒有極限的溝通將帶來沒有極限的生活。&l
37、t;/p><p> 2.2 ASP.NET技術(shù)</p><p> ASP.NET是微軟提供的新一代的Web開發(fā)平臺,它為開發(fā)人員提供了生成企業(yè)級Web應(yīng)用程序所需要的服務(wù)、編程模型和軟件基礎(chǔ)結(jié)構(gòu),同其他Web開發(fā)平臺相比,ASP.NET具有下面三大優(yōu)勢。</p><p> 2.2.1支持編譯型語言</p><p> 目前流行的幾種腳本語言
38、比如VBScript、JavaScript和ASP等都有兩個(gè)主要的缺點(diǎn)。第一,不支持強(qiáng)數(shù)據(jù)類型。在JavaScript中定義變量只有一個(gè)關(guān)鍵字var,使用var關(guān)鍵字定義的變量,如果賦值是字符串,該變量就是字符串變量;如果賦值是整數(shù),則該變量就是整型變量。在VBScript和ASP中,定義變量只通過一個(gè)關(guān)鍵字DIM,該變量也沒有具體的類型。第二,腳本語言是解釋型的。通常情況下,解釋型的腳本語言在性能上抵不上編譯型的語言。</p&g
39、t;<p> 自推出.NET開發(fā)平臺以來,微軟在Web服務(wù)器端開發(fā)語言方面,主推VB.NET和C#.NET這兩種編譯型語言。通過這兩種開發(fā)語言,程序員可以像開發(fā)普通的Windows程序一樣來開發(fā)Web程序,只不過在Windows程序中用于開發(fā)GUI界面的各種控件,在Web程序開發(fā)中也有它們相應(yīng)的Web版本。</p><p> 程序員通過C#語言,利用VS.NET提供的各種Web控件,可以非常容易
40、地開發(fā)ASP.NET Web程序。開發(fā)的ASP.NET程序被編譯成MSIL語言,這種中間語言具有平臺無關(guān)性,而且,由于ASP.NET頁面在執(zhí)行前會被編譯,所以ASP.NET的性能得到了很大的提高。</p><p> 2.2.2程序代碼與頁面內(nèi)容的成功分離</p><p> 通常的動態(tài)網(wǎng)頁開發(fā),往往是在一個(gè)網(wǎng)頁上混合多種腳本語言。比如在HTML腳本語言上可以嵌入JavaScript或VB
41、Script等客戶端腳本語言,也可以同時(shí)嵌入ASP或JSP等服務(wù)器端腳本語言。這種多語言混合的Web開發(fā)模式通行已久,但是它的代碼可讀性很差,程序代碼同頁面內(nèi)容混合在一起,程序員要在多種語言的思維上頻繁切換,如果程序很復(fù)雜的話,這種開發(fā)模式非常不利于程序的開發(fā),而且日后的維護(hù)也將成為大問題。</p><p> ASP.NET Web開發(fā)技術(shù)為程序員提供了一種非常好的開發(fā)模式,即Code Behind技術(shù),它通過
42、Web控件將程序代碼與頁面內(nèi)容成功分離,從而使ASP.NET的程序結(jié)構(gòu)異常清晰,開發(fā)和維護(hù)的效率也得到了很大的提高。另外可以利用Visual Studio.NET集成環(huán)境下開發(fā)ASP.NET應(yīng)用程序,該環(huán)境不僅提供了強(qiáng)大的調(diào)試能力,而且還集成了“所見即所得”的HTML編輯器,為開發(fā)人員開發(fā)Web頁面提供了方便的圖形化支持。</p><p> 2.2.3引入服務(wù)器端控件</p><p>
43、 在ASP中,可以給頁面手動添加HTML控件,對這些控件的響應(yīng)有兩種辦法。一種是在客戶端的腳本語言中響應(yīng)用戶對這些控件的輸入,另一種是把該頁面提交給服務(wù)器。這兩種辦法都存在問題,第一種辦法產(chǎn)生的問題是不同的瀏覽器以不同的方式執(zhí)行客戶端腳本語言,我們很難編寫在多種瀏覽器上都能良好運(yùn)行的復(fù)雜的Web頁面。第二種辦法存在的問題是,如果我們把Web頁面重新提交給服務(wù)器,那么Internet的無狀態(tài)特性就會導(dǎo)致頁面上存儲在變量中的信息丟失,除非我
44、們編寫了復(fù)雜的代碼,把它們存儲在HTML元素或URL查詢字符串中。</p><p> ASP.NET通過服務(wù)器控件解決了上述問題。服務(wù)器端控件會生成發(fā)送給瀏覽器的HTML代碼,顯示控件,它們還能生成隱藏的HTML元素來存儲它們當(dāng)前的狀態(tài)。在提交頁面時(shí),這些信息就會傳送回服務(wù)器,控件將自動處理這些信息,改變HTML,顯示控件[11]。</p><p> 2.3 AJAX技術(shù)</p&
45、gt;<p> AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。 </p><p> 2.3.1與傳統(tǒng)的web應(yīng)用比較</p><p> 傳統(tǒng)的web應(yīng)用允許用戶填寫表單(form),當(dāng)提交表單時(shí)就向web服務(wù)器發(fā)送一個(gè)請求。服務(wù)器接收并處理傳來的表單,然后返
46、回一個(gè)新的網(wǎng)頁。這個(gè)做法浪費(fèi)了許多帶寬,因?yàn)樵谇昂髢蓚€(gè)頁面中的大部分HTML代碼往往是相同的。由于每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請求,應(yīng)用的響應(yīng)時(shí)間就依賴于服務(wù)器的響應(yīng)時(shí)間。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多。 </p><p> 與此不同,AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它使用SOAP或其它一些基于XML的web service接口,并在客戶端采用JavaScript處理來自服務(wù)器的響應(yīng)
47、。因?yàn)樵诜?wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少,結(jié)果我們就能看到響應(yīng)更快的應(yīng)用。同時(shí)很多的處理工作可以在發(fā)出請求的客戶端機(jī)器上完成,所以Web服務(wù)器的處理時(shí)間也減少了。</p><p> 2.3.2 Ajax應(yīng)用程序的優(yōu)勢</p><p> 通過異步模式,提升了用戶體驗(yàn)</p><p> 優(yōu)化了瀏覽器和服務(wù)器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占用<
48、;/p><p> Ajax引擎在客戶端運(yùn)行,承擔(dān)了一部分本來由服務(wù)器承擔(dān)的工作,從而減少了大用戶量下的服務(wù)器負(fù)載。</p><p> 2.3.3 優(yōu)點(diǎn)和缺點(diǎn)</p><p> 使用Ajax的最大優(yōu)點(diǎn),就是能在不更新整個(gè)頁面的前提下維護(hù)數(shù)據(jù)。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒有改變過的信息。</p><p>
49、; Ajax不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執(zhí)行。就像DHTML應(yīng)用程序那樣,Ajax應(yīng)用程序必須在眾多不同的瀏覽器和平臺上經(jīng)過嚴(yán)格的測試。隨著Ajax的成熟,一些簡化Ajax使用方法的程序庫也相繼問世。同樣,也出現(xiàn)了另一種輔助程序設(shè)計(jì)的技術(shù),為那些不支持JavaScript的用戶提供替代功能。</p><p> 對應(yīng)用Ajax最主要的缺點(diǎn)就是,它可能破壞瀏覽器后退按鈕的正常
50、行為。在動態(tài)更新頁面的情況下,用戶無法回到前一個(gè)頁面狀態(tài),這是因?yàn)闉g覽器僅能記下歷史記錄中的靜態(tài)頁面。一個(gè)被完整讀入的頁面與一個(gè)已經(jīng)被動態(tài)修改過的頁面之間的差別非常微妙;用戶通常都希望單擊后退按鈕,就能夠取消他們的前一次操作,但是在Ajax應(yīng)用程序中,卻無法這樣做。不過開發(fā)者已想出了種種辦法來解決這個(gè)問題,當(dāng)中大多數(shù)都是在用戶單擊后退按鈕訪問歷史記錄時(shí),通過建立或使用一個(gè)隱藏的IFRAME來重現(xiàn)頁面上的變更。</p>&l
51、t;p> 2.3.4 Ajax的工作原理</p><p> Ajax的核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支持異步請求的技術(shù)。簡而言之,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請求并處理響應(yīng),而不阻塞用戶。</p><p> 在創(chuàng)建Web站點(diǎn)時(shí),在客戶端執(zhí)行
52、屏幕更新為用戶提供了很大的靈活性。下面是使用Ajax可以完成的功能:</p><p> 動態(tài)更新購物車的物品總數(shù),無需用戶單擊Update并等待服務(wù)器重新發(fā)送整個(gè)頁面。 </p><p> 提升站點(diǎn)的性能,這是通過減少從服務(wù)器下載的數(shù)據(jù)量而實(shí)現(xiàn)的。例如,在某購物車頁面,當(dāng)更新籃子中的一項(xiàng)物品的數(shù)量時(shí),會重新載入整個(gè)頁面,這必須下載整個(gè)頁面的數(shù)據(jù)。如果使用Ajax計(jì)算新的總量,服務(wù)器只會
53、返回新的總量值,因此所需的帶寬僅為原來的百分之一。 消除了每次用戶輸入時(shí)的頁面刷新。例如,在Ajax中,如果用戶在分頁列表上單擊Next,則服務(wù)器數(shù)據(jù)只刷新列表而不是整個(gè)頁面。 </p><p> 直接編輯表格數(shù)據(jù),而不是要求用戶導(dǎo)航到新的頁面來編輯數(shù)據(jù)。對于Ajax,當(dāng)用戶單擊Edit時(shí),可以將靜態(tài)表格刷新為內(nèi)容可編輯的表格。用戶單擊Done之后,就可以發(fā)出一個(gè)Ajax請求來更新服務(wù)器,并刷新表格,使其包含靜
54、態(tài)、只讀的數(shù)據(jù)[12]。</p><p> 2.4 SQL Server 2005技術(shù)</p><p> SQL Server 是一個(gè)全面的、集成的、端到端的數(shù)據(jù)解決方案,它為企業(yè)中的用戶提供了一個(gè)安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應(yīng)用。</p><p> 2.4.1 SQL Server 數(shù)據(jù)平臺</p><p> S
55、QL Server 2005 為IT專家和信息工作者帶來了強(qiáng)大的、熟悉的工具,同時(shí)減少了在從移動設(shè)備到企業(yè)數(shù)據(jù)系統(tǒng)的多平臺上創(chuàng)建、部署、管理及使用企業(yè)數(shù)據(jù)和分析應(yīng)用程序的復(fù)雜度。 通過全面的功能集、和現(xiàn)有系統(tǒng)的集成性、以及對日常任務(wù)的自動化管理能力,SQL Server 2005 為不同規(guī)模的企業(yè)提供了一個(gè)完整的數(shù)據(jù)解決方案。圖1顯示了SQL Server 2005數(shù)據(jù)平臺的組成架構(gòu)。</p><p> 2.4
56、.2 SQL Server 支持工具</p><p> 關(guān)系型數(shù)據(jù)庫: 安全、可靠、可伸縮、高可用的關(guān)系型數(shù)據(jù)庫引擎,提升了性能且支持結(jié)構(gòu)化和非結(jié)構(gòu)化(XML)數(shù)據(jù)。 </p><p> 復(fù)制服務(wù): 數(shù)據(jù)復(fù)制可用于數(shù)據(jù)分發(fā)、處理移動數(shù)據(jù)應(yīng)用、系統(tǒng)高可用、企業(yè)報(bào)表解決方案的后備數(shù)據(jù)可伸縮存儲、與異構(gòu)系統(tǒng)的集成等,包括已有的Oracle數(shù)據(jù)庫等。 </p><p>
57、 通知服務(wù): 用于開發(fā)、部署可伸縮應(yīng)用程序的先進(jìn)的通知服務(wù)能夠向不同的連接和移動設(shè)備發(fā)布個(gè)性化、及時(shí)的信息更新。 </p><p> 集成服務(wù): 可以支持?jǐn)?shù)據(jù)倉庫和企業(yè)范圍內(nèi)數(shù)據(jù)集成的抽取、轉(zhuǎn)換和裝載能力。 </p><p> 分析服務(wù): 聯(lián)機(jī)分析處理(OLAP)功能可用于多維存儲的大量、復(fù)雜的數(shù)據(jù)集的快速高級分析。 </p><p> 報(bào)表服務(wù): 全面的報(bào)
58、表解決方案,可創(chuàng)建、管理和發(fā)布傳統(tǒng)的、可打印的報(bào)表和交互的、基于Web的報(bào)表。 </p><p> 管理工具: SQL Server 包含的集成管理工具可用于高級數(shù)據(jù)庫管理和調(diào)諧,它也和其他微軟工具,如MOM和SMS緊密集成在一起。標(biāo)準(zhǔn)數(shù)據(jù)訪問協(xié)議大大減少了SQL Server和現(xiàn)有系統(tǒng)間數(shù)據(jù)集成所花的時(shí)間。此外,構(gòu)建于SQL Server內(nèi)的內(nèi)嵌Web service支持確保了和其他應(yīng)用及平臺的互操作能力。
59、</p><p> 開發(fā)工具: SQL Server 為數(shù)據(jù)庫引擎、數(shù)據(jù)抽取、轉(zhuǎn)換和裝載(ETL)、數(shù)據(jù)挖掘、OLAP和報(bào)表提供了和Microsoft Visual Studio® 相集成的開發(fā)工具,以實(shí)現(xiàn)端到端的應(yīng)用程序開發(fā)能力。SQL Server中每個(gè)主要的子系統(tǒng)都有自己的對象模型和API,能夠以任何方式將數(shù)據(jù)系統(tǒng)擴(kuò)展到不同的商業(yè)環(huán)境中。 </p><p> 2.4.3
60、 SQL Server 2005的特點(diǎn)與優(yōu)勢</p><p> 充分利用數(shù)據(jù)資產(chǎn): 除了為業(yè)務(wù)線和分析應(yīng)用程序提供一個(gè)安全可靠的數(shù)據(jù)庫之外,SQL Server 2005也使用戶能夠通過嵌入的功能,如報(bào)表、分析和數(shù)據(jù)挖掘等從他們的數(shù)據(jù)中得到更多的價(jià)值。 </p><p> 提高生產(chǎn)力: 通過全面的商業(yè)智能功能,和熟悉的微軟Office系統(tǒng)之類的工具集成,SQL Server 2005為
61、組織內(nèi)信息工作者提供了關(guān)鍵的、及時(shí)的商業(yè)信息以滿足他們特定的需求。SQL Server 2005目標(biāo)是將商業(yè)智能擴(kuò)展到組織內(nèi)的所有用戶,并且最終允許組織內(nèi)所有級別的用戶能夠基于他們最有價(jià)值的資產(chǎn)——數(shù).提供了工業(yè)上最低的規(guī)劃、實(shí)現(xiàn)和維護(hù)成本,使數(shù)據(jù)庫投資能快速得到回報(bào)[13]。</p><p> 3. 系統(tǒng)功能分析與概要設(shè)計(jì)</p><p><b> 3.1 功能分析<
62、/b></p><p> 本網(wǎng)上訂餐管理系統(tǒng)共涉及了三種類型的角色,包括:管理員、注冊會員(以下簡稱會員)和游客。故在功能上也根據(jù)這三種角色劃分了三種類型的功能。每種功能都需要有相應(yīng)的角色權(quán)限才能使用,比如說游客不能使用會員的一些功能,而會員也不能使用管理員的一些功能,但是游客的功能是會員和管理員都可以使用的。下面將一一介紹。</p><p> 3.1.1 管理員功能</p
63、><p> 在用戶登陸時(shí)可以選擇賬戶的類型,如果選擇了管理員的話,則系統(tǒng)將從數(shù)據(jù)庫中判斷該用戶是否為管理員,如果是的話則跳轉(zhuǎn)到管理員專有的頁面上進(jìn)行操作。(見圖3 - 1到3 - 4)</p><p> 圖 3 - 1 管理員選擇管理員類型登陸</p><p> 圖 3 - 2 管理員登陸后的頁面頭部分</p><p> 圖 3 - 3
64、會員選擇管理員類型登陸</p><p> 圖 3 - 4 會員選擇管理員類型登陸后的產(chǎn)生錯(cuò)誤</p><p> 管理員功能主要分為以下幾個(gè)大的部分,首先,最重要的是訂單的管理,在該項(xiàng)功能中包含了對當(dāng)前待處理的定單的處理、查看、排序、刪除(見圖3 - 5),以及對已處理的歷史訂單的查看、排序等(見圖3 - 6和3 - 7)。</p><p> 圖 3 - 5 所
65、有待處理的定單</p><p> 圖 3 - 6 所有已處理的定單</p><p> 圖 3 - 7 點(diǎn)擊“詳情”后顯示的訂單詳情(未處理定單中同)</p><p> 其次,菜品管理也是重要的一個(gè)部分。在菜品管理中包括了添加、刪除和修改菜品。(見圖3 - 8和3 - 9)管理員通過點(diǎn)擊按鈕來添加菜品,每個(gè)菜品都可以添加有自己的名稱、價(jià)格、圖片和介紹等信息(見圖
66、3 - 10)。</p><p> 圖 3 - 8 菜品管理部分功能</p><p> 圖 3 - 9 修改菜品信息</p><p> 圖 3 - 10 點(diǎn)擊“添加新菜”后的添加菜品</p><p> 最后的一個(gè)部分就是會員的管理。在該功能中,管理員可以查看每個(gè)會員的所有訂單,對每個(gè)訂單還能看到他訂了些什么、消費(fèi)了多少等等。 (見圖3
67、 - 11)</p><p> 圖 3 - 11 會員管理操作</p><p> 管理員功能部分的結(jié)構(gòu)圖如下圖所示:</p><p> 圖 3 - 12 管理員功能結(jié)構(gòu)圖</p><p> 3.1.2 會員功能</p><p> 在會員功能中,最重要的就是點(diǎn)菜功能了。因此將點(diǎn)菜頁面作為了系統(tǒng)的主頁,一經(jīng)登陸就
68、可以看到主頁上的熱門菜、新品上市和選菜下訂單部分。(見圖 3 - 13)會員只需點(diǎn)擊每個(gè)菜品片下面的按鈕,就可以將該菜品加入購物車中,然后在頁面的底部也將動態(tài)地顯示出當(dāng)前購物車中的物品、數(shù)量及價(jià)格,也可以刪除。(見圖 3 - 14)在會員認(rèn)為完成了點(diǎn)菜之后,點(diǎn)擊按鈕,就會顯示出當(dāng)前訂單的所有詳細(xì)的內(nèi)容,以及要求會員填寫就餐時(shí)間、地點(diǎn)、聯(lián)系電話等信息。(見圖3 - 15)</p><p> 其次,會員功能還包括了
69、會員服務(wù)和留言反饋。在會員服務(wù)中,會員可以修改自己的基本信息,也可以看到自己所有的訂單、訂單的詳細(xì)情況以及訂單現(xiàn)在有沒有被送出等信息。(見圖3 - 16)在留言反饋中,會員可以留下對本訂餐管理系統(tǒng)中的一些不足之處的意見和建議或者是贊美之詞。(見圖3 - 17)</p><p> 圖 3 - 13選菜下訂單主頁</p><p> 圖 3 - 14購物車</p><p&
70、gt; 圖 3 - 15 點(diǎn)擊“ok,去收銀臺后”的提交菜單</p><p> 圖 3 - 16會員服務(wù)頁面</p><p> 圖 3 - 17 留言反饋頁面</p><p> 會員功能部分的結(jié)構(gòu)圖如下圖所示:</p><p> 圖 3 - 18 會員功能結(jié)構(gòu)圖</p><p> 3.1.3 游客功能<
71、;/p><p> 游客是指沒有在本訂餐管理系統(tǒng)中注冊過的訪問者。當(dāng)游客訪問時(shí)首先看到的是選餐的頁面,游客可以選擇菜品,加入購物車,當(dāng)游客點(diǎn)擊按鈕時(shí),就會顯示出沒有登陸的信息并要求登陸后才能使用下訂單的功能。對于會員服務(wù),游客點(diǎn)擊進(jìn)去之后所有的內(nèi)容都是空的,對于留言反饋,游客點(diǎn)擊進(jìn)去之后只能查看所有的留言而不能發(fā)表留言。(見圖3 - 19)</p><p> 圖 3 - 19 游客點(diǎn)擊“ok
72、,去收銀臺”之后</p><p><b> 3.2 界面設(shè)計(jì)</b></p><p> 本系統(tǒng)的所有界面都采用了紅色色調(diào),美工效果比較少,整體比較簡潔有序。另外像注冊、登陸、收銀臺和添加新菜這些頁面都采用了彈出式的方式,使頁面看上去比較有動感。(登陸見圖3 – 20,其余彈出框類似)</p><p> 圖 3 - 20 在點(diǎn)擊了登陸后彈出
73、的登陸框</p><p> 3.2.1 管理員界面</p><p> 在登陸時(shí),管理員選擇管理員類型登陸后,即跳轉(zhuǎn)到管理員專用的頁面,在管理員部分中將所有的功能分布在三個(gè)頁面上:訂單處理、菜品管理和會員管理。(見圖3 - 21)</p><p> 圖 3 - 21 管理員頁面部分</p><p> 3.2.2 會員界面</p&g
74、t;<p> 在登陸時(shí),會員選擇會員類型登陸后,即跳轉(zhuǎn)到會員的頁面,在會員部分中也將所有的功能分布在三個(gè)頁面上:選餐訂餐、會員服務(wù)和留言反饋。這部分的頁面和游客和頁面是一樣的,只不過當(dāng)游客訪問某些頁面的時(shí)候會因?yàn)闆]有登陸而無法訪問。(見圖3 – 22)</p><p> 圖 3 - 22 會員頁面部分</p><p><b> 3.3 數(shù)據(jù)庫設(shè)計(jì)</b&
75、gt;</p><p> 數(shù)據(jù)庫往往是一個(gè)管理信息系統(tǒng)的核心,因?yàn)樗鎯α嗽撓到y(tǒng)的所有數(shù)據(jù)和信息,所以極其重要。在數(shù)據(jù)庫設(shè)計(jì)中,既要關(guān)心到數(shù)據(jù)的冗余問題,又要關(guān)心到表與表之間的關(guān)系。</p><p> 3.3.1 數(shù)據(jù)庫結(jié)構(gòu)</p><p> 本系統(tǒng)的數(shù)據(jù)庫名稱為“DinnerOrder”,數(shù)據(jù)庫中包含了以下幾個(gè)表:FoodAndDrink, Member,
76、MemberReback, Orders, Orders_Detail。其中FoodAndDrink表中存放了所有菜品的信息,包括:菜品ID、菜品名稱、價(jià)格、介紹、種類、圖片、被訂次數(shù);Member表中存放了所有會員的信息,包括會員ID、會員姓名、性別、郵箱、電話、密碼、地址、類型、訂餐次數(shù)、訂餐總額;MemberReback表中存放了會員的反饋信息,信息ID、留言人姓名、留言標(biāo)題、留言內(nèi)容和留言時(shí)間;Orders表中存放了所有的訂單,
77、包括訂單ID、訂單會員ID、菜品數(shù)量、總額、用餐地點(diǎn)、訂餐時(shí)間、用餐時(shí)間、狀態(tài)、聯(lián)系電話和處理時(shí)間;Order_Detail表中存放了每個(gè)訂單的詳細(xì)菜單,包括訂單ID、菜品ID、每樣菜品的數(shù)量、菜品名稱和價(jià)錢。(圖3 – 21顯示了FoodAndDrink表的結(jié)構(gòu))</p><p><b> 圖 3 - 23</b></p><p> 在這些表中存在一些關(guān)系:Or
78、ders表中的會員ID參考了Member表中的會員ID,Order_Detail表中的訂單ID參考了Orders表中的訂單ID,每個(gè)表中都是以ID作為主碼的??紤]到菜品是隨時(shí)要修改的,而訂單的數(shù)據(jù)是要一直保存在數(shù)據(jù)庫中的,所以沒有將訂單中的菜品ID號與FoodAndDrink中的ID號參照起來,雖然這樣做產(chǎn)生了一定的數(shù)據(jù)冗余,但是這保證了在個(gè)性菜品信息以后,此前訂單中曾經(jīng)訂過該菜品的數(shù)據(jù)不會丟失,這樣,管理員也可以根據(jù)歷史數(shù)據(jù)做出合理的
79、安排,此外,將訂單的詳細(xì)數(shù)據(jù)存放在一張表中雖然有冗余,但是在一定程度上卻加快了數(shù)據(jù)庫表查詢的速度。</p><p> 3.3.2 數(shù)據(jù)庫操作</p><p> 數(shù)據(jù)庫操作主要是指對數(shù)據(jù)庫中每個(gè)表的查詢、插入、修改和刪除等操作。在本系統(tǒng)中,F(xiàn)oodAndDrink和Orders表包含了所有的操作,另外的三個(gè)表沒有刪除的操作。在插入和修改表數(shù)據(jù)的時(shí)候都必須考慮到表中字段的數(shù)據(jù)類型及完整性約
80、束,如:非空、整型與小數(shù)、圖像的二進(jìn)制類型及字符串的定長與可變長度等,必須在程序中對輸入的數(shù)據(jù)進(jìn)行相應(yīng)的轉(zhuǎn)換后才可以保存到數(shù)據(jù)庫中,在刪除訂單時(shí)候,由于Order_Detail表中參照了Order表中的ID號,所以必須進(jìn)行級聯(lián)刪除,即刪除訂單的時(shí)候也刪除Order_Detail表中相應(yīng)訂單的數(shù)據(jù)。而在其他的表中沒有這樣的問題,因?yàn)闆]有涉及到參照。</p><p> 3.3.3 數(shù)據(jù)字典</p>&
81、lt;p> 表 3 - 1 數(shù)據(jù)字典</p><p> 4. 系統(tǒng)詳細(xì)設(shè)計(jì)與編碼實(shí)現(xiàn)</p><p><b> 4.1 管理員模塊</b></p><p> 管理員模塊主要涉及了訂單管理、菜品管理和會員管理三個(gè)部分,這個(gè)模塊當(dāng)中涉及的數(shù)據(jù)庫操作比較多。</p><p> 4.1.1 訂單管理</p&
82、gt;<p> 訂單管理主要對會員提交的處理工作,包含了顯示訂單、在訂單派送后更改訂單的狀態(tài)和對于不合理的定單的刪除。</p><p> 在顯示訂單方面分為未處理訂單和已處理訂單兩個(gè)部分,但是都是放在一個(gè)頁面上,其中未處理訂單顯示在頁面的最上方,有利于管理員登陸后馬上就能看到并處理,使用GridView來顯示數(shù)據(jù),從數(shù)據(jù)庫中把數(shù)據(jù)讀到DataReader中,再建立一張DataTable,把數(shù)據(jù)放
83、進(jìn)去,最后將這張DataTable綁定到GirdView中(由于后面的數(shù)據(jù)顯示基本上都是采用這種方法,所以后面不再詳述)。將數(shù)據(jù)對訂單的顯示也有排序方式可選擇,分為:按用餐的時(shí)間排序、按訂餐時(shí)間排序、按訂單金額排序和按菜品數(shù)量排序四種。排序方式放在DropDownList中,并啟用AutoPostBack,值一經(jīng)改變就馬上更新顯示的方式并顯示。(代碼如下,一些變量的定義不在其中,后面的代碼都是這樣)</p><p&g
84、t;<b> /*</b></p><p> *創(chuàng)建gridview的數(shù)據(jù),通過strDe_UnDe來判斷是哪個(gè)</p><p><b> */</b></p><p> protected void BindOrderUndeliverd()</p><p><b> {<
85、;/b></p><p> this.gridviewOrderUndeliverd.DataSource = CreateSourceOrder(strSelOrderUnDeliverd, "UnDe");</p><p> this.gridviewOrderUndeliverd.DataBind();</p><p> lbn
86、NextPageUnde.Enabled = true;</p><p> lbnPrevPageUnde.Enabled = true;</p><p> if (intCurrentPageUnde == (intPageCountUnde - 1))</p><p><b> {</b></p><p>
87、lbnNextPageUnde.Enabled = false;</p><p><b> }</b></p><p> if (intCurrentPageUnde == 0)</p><p><b> {</b></p><p> lbnPrevPageUnde.Enabled = fa
88、lse;</p><p><b> }</b></p><p> lblCurrentPageUnde.Text = (intCurrentPageUnde + 1).ToString();</p><p> this.updatepanelOrderUndeliverd.Update();</p><p><
89、;b> }</b></p><p><b> /*</b></p><p> *創(chuàng)建gridview的數(shù)據(jù),通過strDe_UnDe來判斷是哪個(gè)</p><p><b> */</b></p><p> protected ICollection CreateSource
90、Order(string strSelOrder, string strDe_UnDe)</p><p><b> {</b></p><p> SqlCommand sqlCmd = new SqlCommand(strSelOrder, sqlConn);</p><p> DataTable dtOrders = new DataT
91、able();</p><p> dtOrders.Columns.Add("ID", typeof(int));</p><p> dtOrders.Columns.Add("MembID", typeof(int));</p><p> dtOrders.Columns.Add("MembName"
92、;, typeof(string));</p><p> dtOrders.Columns.Add("TotalNum", typeof(int));</p><p> dtOrders.Columns.Add("TotalMoney", typeof(decimal));</p><p> dtOrders.Colum
93、ns.Add("OrderTime", typeof(string));</p><p> dtOrders.Columns.Add("HaveDinnerTime", typeof(string));</p><p> dtOrders.Columns.Add("Location", typeof(string));<
94、/p><p> dtOrders.Columns.Add("OrderID", typeof(int));</p><p> int intStartIndex = 0;</p><p> if (strDe_UnDe == "De")</p><p><b> {</b>&l
95、t;/p><p> intStartIndex = intCurrentPageDe * intPageSize;</p><p> dtOrders.Columns.Add("DeliverTime", typeof(string));</p><p><b> }</b></p><p><
96、;b> else</b></p><p><b> {</b></p><p> intStartIndex = intCurrentPageUnde * intPageSize;</p><p><b> }</b></p><p> int i = 0, j = in
97、tStartIndex + 1; </p><p> if (sqlConn.State == ConnectionState.Closed)</p><p><b> {</b></p><p> sqlConn.Open();</p><p><b> }</b></p>
98、<p> SqlDataReader dr = sqlCmd.ExecuteReader();</p><p> while (dr.Read())</p><p><b> {</b></p><p><b> i++;</b></p><p> if (i > intS
99、tartIndex && i <= intStartIndex + intPageSize)</p><p><b> {</b></p><p> DataRow drow = dtOrders.NewRow();</p><p> drow["ID"] = j++;</p>&l
100、t;p> drow["MembID"] = dr["ID"];</p><p> drow["TotalNum"] = dr["NUM"];</p><p> drow["TotalMoney"] = dr["MONEY"];</p><p
101、> drow["OrderTime"] = dr["OTIME"];</p><p> drow["HaveDinnerTime"] = dr["HDTIME"];</p><p> drow["Location"] = dr["ADDR"];</p&g
102、t;<p> drow["OrderID"] = dr["ODID"];</p><p> if(strDe_UnDe == "De")</p><p><b> {</b></p><p> drow["DeliverTime"] = dr[
103、"DTIME"];</p><p><b> }</b></p><p> dtOrders.Rows.Add(drow);</p><p><b> }</b></p><p> if (i > (intStartIndex + intPageSize))<
104、/p><p><b> {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> dr.Close();</p>&
105、lt;p> sqlConn.Close();</p><p> for (int k = 0; k < dtOrders.Rows.Count; k++ )</p><p><b> {</b></p><p> dtOrders.Rows[k]["MembName"] = SelectName_ID(i
106、nt.Parse(dtOrders.Rows[k]["MembID"].ToString()), "MembID", "MembName", "Member");</p><p><b> }</b></p><p> return dtOrders.DefaultView;</
107、p><p><b> }</b></p><p> 為了實(shí)現(xiàn)訂單處理,在負(fù)責(zé)顯示的GridView中添加一個(gè)鏈接按鈕,顯示的標(biāo)題欄為“更改狀態(tài)”,在數(shù)據(jù)欄中顯示的內(nèi)容為“未送出”,管理員只要點(diǎn)擊這個(gè)鏈接就可以將該訂單的狀態(tài)改為“已處理”。由于在GirdView中每個(gè)數(shù)據(jù)的鏈接按鈕都是相同的,所以在這個(gè)鏈接按鈕上使用了CommandName來綁定GridView中的Or
108、derID,在后臺中讀取到這個(gè)ID,然后再更改數(shù)據(jù)庫中該ID的狀態(tài)。在實(shí)現(xiàn)顯示訂單詳情上也采用了類似的方法,這里不再詳述。(代碼如下)</p><p><b> /*</b></p><p> * 點(diǎn)擊“未送出”鏈接按鈕后觸發(fā)的修改訂單的狀態(tài)事件</p><p><b> */</b></p><
109、p> protected void lkbtnChangeStatue_Command(object sender, CommandEventArgs e)</p><p><b> {</b></p><p> int intOrderIDUnde = int.Parse(e.CommandName.ToString());</p><
110、;p> string strUpdateOrderState = "UPDATE [Orders] SET Deliverd = '已送出' WHERE OrderID = " + intOrderIDUnde + ";";</p><p> string strUpdateOrderDeliverTime = "UPDATE [Orde
111、rs] SET DeliverTime = '" + DateTime.Now.ToString() + "' WHERE OrderID = " + intOrderIDUnde + ";";</p><p> SqlCommand sqlcmd = new SqlCommand(strUpdateOrderState, sqlConn);&
112、lt;/p><p> SqlCommand sqlcmd2 = new SqlCommand(strUpdateOrderDeliverTime, sqlConn);</p><p> if(ConnectionState.Closed == sqlConn.State)</p><p><b> {</b></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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)上訂餐管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文--網(wǎng)上訂餐管理系統(tǒng)
- 網(wǎng)上訂餐系統(tǒng)畢業(yè)論文
- 網(wǎng)上訂餐系統(tǒng)(畢業(yè)論文)
- 網(wǎng)上訂餐系統(tǒng)——畢業(yè)論文
- 網(wǎng)上訂餐系統(tǒng)畢業(yè)論文
- 網(wǎng)上訂餐系統(tǒng)畢業(yè)論文 (2)
- 網(wǎng)上訂餐jsp系統(tǒng)畢業(yè)論文
- 網(wǎng)上訂餐管理系統(tǒng)畢業(yè)論文-龍思思3
- 畢業(yè)論文--基于android的網(wǎng)上訂餐系統(tǒng)
- 畢業(yè)論文--基于android的網(wǎng)上訂餐系統(tǒng)
- 畢業(yè)論文-----網(wǎng)上訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 網(wǎng)上訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 畢業(yè)論文---基于bs的網(wǎng)上訂餐系統(tǒng)設(shè)計(jì)
- 網(wǎng)上訂餐系統(tǒng)的設(shè)計(jì)與開發(fā)-畢業(yè)論文
- 學(xué)生信息管理系統(tǒng)本科畢業(yè)論文
- 本科畢業(yè)論文
- 本科畢業(yè)論文《管理互動系統(tǒng)的設(shè)計(jì)》
- 本科畢業(yè)論文
- 本科畢業(yè)論文
評論
0/150
提交評論