第一篇:畢業論文_基于ASPNET的網站設計(含源文件)
(此文檔為word格式,下載后您可任意編輯修改!)
四川建筑職業技術學院 計算機工程系
畢業設計(論文)
基于ASP.NET的網站設計
二零一三年六月
I
摘 要
當今隨著互聯網的發展,網上購物變得越來越普遍,而且已成為許多人生活中不可缺少的一部分。在網上商城里,對于那些商家來說,相比開實體店,節約了大量的成本,并且宣傳、管理和經營都更便捷,比如網上銷售庫存壓力較小、經營成本低、經營規模不受場地限制等。對消費者來講,足不出門就能輕松地獲得大量的商品信息,可以買到當地沒有的商品,訂貨不受時間、地點的限制。而網上購物系統就如同建立在二者之間的溝通橋梁,將銷售與購買緊緊相連,為商家和消費者提供了集交流、溝通和交易于一體的良好平臺。現在人們都希望網上購物是便宜、快捷、安全的,這也跟網購系統開發商提出了較高的要求,顯然,對于一個購物網站而言,一款好的網上購物系統是必不可少的。現在比較好的網上購物系統通常都包括商品功能、訂單功能、會員功能、支付和配送功能、模板功能、文章功能、廣告功能、管理功能、統計分析功能、促銷功能、國際化功能、整合功能、系統功能、搜索引擎優化功能,功能全不全,操作是否簡易,安全性高還是低,視覺感好與差,是檢驗購物網站好不好的標準。功能越全,操作越簡單,安全性越高,給人的視覺感越好,就越會受到商家和顧客的青睞。
此次本人畢業設計所做項目是模仿京東商城,用Visual Studio 2008編程,SQL Server 2005做數據庫,由于時間和技術有限,所做項目僅能實現顧客購物的部分過程,在此深表遺憾。網站所涉過程從消費者進入網站首頁、注冊、登錄到瀏覽商品、加入購物車,再到結算、選擇銀行,最后是查看訂單信息。在做這個項目的過程中,本人遇到了許多問題,一些是通過自己在網上搜索解決的,還有是請教老師和同學解決的。這使我深深感受到自我的局限性。網絡為我們提供了巨大的資源空間,希望大家能好好利用,拓展自己的知識,相信將來會用得著的。
關鍵詞:ASP.NET; 仿京東網站設計; 畢業論文
目 錄
摘 要...............................................................................................................................I 目 錄..............................................................................................................................II
1.1 本論文的背景和意義.............................................................................................1 1.2 本論文的主要方法和研究進展.............................................................................1 1.3 本論文的主要內容.................................................................................................2 1.4 本論文的結構安排.................................................................................................2 第2章 主要內容.................................................................................................................3
2.1 系統需求分析.........................................................................................................3 2.2 系統設計.................................................................................................................3 2.2.1 系統流程圖.........................................................................................................3 2.2.2 系統功能結構.....................................................................................................3 2.2.3 系統預覽.............................................................................................................4 2.2.4 數據庫設計.........................................................................................................6
2.2.4.1 數據庫概要說明.....................................................................................6 2.2.4.2 數據庫E-R圖分析.................................................................................7 2.2.4.3 數據表結構...........................................................................................10 2.2.4.4 網站文件夾組織結構...........................................................................12 2.3 注冊模塊功能介紹...............................................................................................13 2.4 商品瀏覽及加入購物車.......................................................................................14 2.5 核對訂單...............................................................................................................16 2.6 查看訂單及其詳情...............................................................................................18 結 論.............................................................................................................................19 致 謝.............................................................................................................................21 附 錄 1 錯誤收集...........................................................................................................22
第1章 緒 論
1.1 本論文的背景和意義
隨著Internet的發展和迅速普及,網上購物這一新型購物方式已逐漸被人們所接受,并逐漸改變甚至取代了傳統的購物觀念。人么足不出戶就可以在網上瀏覽到全國各地的商品信息,方便快捷地搜索到自己所需要的商品,而安全在線支付和送貨上門服務,是人們更加深切地體會到這一購物方式的優越性。
與此同時,網上商城這種新的商業運營模式被越來越多的商家運用到競爭中,并得到了大多數顧客的認可,這種基于瀏覽器、服務器實現的銷售方式已初具規模。一些電子商務網站的成立,從整體上降低了企業成本,加快了企業對市場的響應速度,提高了企業的服務質量和競爭力。
京東網是國內主要的購物網站之一,也是中國電子商務領域最受消費者歡迎和最具影響力的電子商務網站之一。相較于同類電子商務網站,360buy京東商城擁有更為豐富的商品種類,并憑借更具競爭力的價格和逐漸完善的物流配送體系等各項優勢,贏得市場占有率多年穩居行業首位的驕人成績。
此次畢業設計圍繞在京東商城購物這一過程,用Visual Studio 2008作平臺,ASP.NET技術開發,實現了消費者購物的基本過程。本論文主要針對畢業設計所做項目(仿京東網站設計)進行探討和研究。寫此論文一方面有助于提高自己的寫作能力,培養自己綜合運用、鞏固與擴展所學的基礎理論和專業知識,培養自己獨立分析、解決實際問題的能力。另一方面,可以幫助教師提高教學質量。再者,將此論文寫好并傳到網上,可以讓更多的人看到,幫助有的人查閱資料,了解軟件開發,為社會創造價值。
1.2 本論文的主要方法和研究進展
本論文是經過實際的項目設計后得出的經驗總結和心得體會,是對軟件開發的論述和探討,所以運用的主要方法是實踐操作。通過實實在在的親身體驗,把自身在設計過程中遇到的問題和解決方法做出總結,將項目設計中運用的技巧和好的方法做出了歸納。由于時間和技術有限,此項目設計僅能實現從消費者注冊、登錄到
瀏覽商品、加入購物車、核算,最后查看訂單及訂單詳情,而未能完整地將消費者在京東購物的過程實現,對此深表遺憾。另外,本論文可能存在遺漏或錯誤之處,還請廣大讀者批評指正。
1.3 本論文的主要內容
本論文會針對項目主要部分做簡單的介紹和分析。消費者注冊會涉及到郵箱驗證,登錄后要瀏覽商品,選中商品可以加入購物車,對購物車中的商品進行核算,提交訂單之前需要核對訂單,提交訂單后會產生訂單,消費者可以查看訂單及詳情。另外,對數據庫的設計也會做簡要的介紹。
1.4 本論文的結構安排
第二章第一節,對系統進行需求分析。第二章第二節,系統設計。
第二章第三節,注冊模塊,重點介紹郵箱驗證功能。第二章第四節,商品瀏覽及加入購物車。第二章第五節,核對訂單。
第二章第六節,查看訂單及其詳情。結論,對畢業設計做總結。
致謝,對在本次畢業設計過程中給予過幫助和支持的老師和同學表示感謝。參考文獻,列出在本次畢業設計中所查閱的參考資料清單。附錄1,對網站開發過程中遇到的問題和相應的解決方案做出總結。
第2章 主要內容
2.1 系統需求分析
隨著中國市場經濟的日趨成熟,中國企業面對的競爭壓力越來越大,企業想要生存,在提高企業內部管理效率、充分利用企業內部資源的基礎上,必須不斷擴展銷售渠道、擴大消費群體,提高企業的競爭力。隨著信息化時代的到來,電子商務網站成為企業對外展示商品信息,從事商務活動的窗口。如何建立企業的電子商務網站,如何把企業業務擴展到Internet上,已成為企業普遍面臨的問題。
2.2 系統設計
2.2.1 系統流程圖
仿京東購物網站系統流程圖,如圖2-2-1-1。
圖2-2-1-1 仿京東購物網站系統流程圖
2.2.2 系統功能結構
仿京東購物網站前臺管理系統功能設計如圖2-2-2-1。
圖2-2-2 網站系統結構圖
2.2.3 系統預覽
仿京東購物網站是由多個web頁面組成,下面僅列出幾個典型頁面。網站首頁如圖2-2-3-1所示,主要提供商品分類導航信息和搜索商品功能。
圖2-2-3-1 網站首頁
購物車頁面如圖2-2-3-2所示,該頁面主要用來查看所購商品,修改商品數量,刪除所購商品。
圖2-2-3-2 購物車頁面
核對訂單頁面如圖2-2-3-3所示,該頁面主要用來修改收貨人信息和支付及配送方式,展示商品清單。
圖2-2-3-3 核對訂單頁面
“我的訂單”頁面如圖2-2-3-4所示,該頁面主要用來展示用戶所有訂單的簡略信息,并提供根據訂單日期、訂單狀態、商品編號等查詢訂單信息。點擊訂單號或查看,可以在另一個頁面查看該訂單詳細信息。
圖2-2-3-4 我的訂單頁面
訂單詳細頁如圖2-2-3-5所示,該頁面主要顯示訂單詳細信息。
圖2-2-3-5 訂單詳細頁面
2.2.4 數據庫設計
通過對網站進行需求分析及網站系統流程的設計,數據庫和對應的實體E-R圖已初步定型,下面一一介紹。
2.2.4.1 數據庫概要說明
圖 2-2-4-1-1為數據表樹形結構圖,它包含了對系統中所有數據表的相關描述。
圖2-2-4-1-1 數據表樹形結構
2.2.4.2 數據庫E-R圖分析
消費者登錄信息E-R圖如圖2-2-4-2-1所示。
圖2-2-4-2-1 消費者實體E-R圖
聯系人信息實體E-R圖如圖2-2-4-2-2所示。
圖2-2-4-2-2 消費者實體E-R圖
地址信息實體E-R圖如圖2-2-4-2-3所示。
圖2-2-4-2-3 地址信息實體E-R圖
商品信息實體E-R圖如圖2-2-4-2-4所示。
圖2-2-4-2-4 商品信息實體E-R圖
購物車信息實體E-R圖如圖2-2-4-2-5所示。
圖2-2-4-2-5 購物車信息實體E-R圖
訂單信息實體E-R圖如圖2-2-4-2-6所示。
圖2-2-4-2-6 訂單信息實體E-R圖
訂單狀態實體E-R圖如圖2-2-4-2-7所示。
圖2-2-4-2-7 訂單狀態實體E-R圖
2.2.4.3 數據表結構
在設計完數據庫實體E-R圖之后,下面將根據實體E-R圖設計數據表結構。?tb_User(消費者登錄信息表)。
消費者信息表主要存儲消費者登錄所需信息。數據表結構如圖2-2-4-3-1所示。
圖2-2-4-3-1 消費者登錄信息表數據結構
?tb_ConsigneeInfo(聯系人信息表)聯系人信息表主要存儲消費者信息,商家才好根據這些信息配送貨物。數據表結構如圖2-2-4-3-2所示。
圖2-2-4-3-2 聯系人信息表數據結構
?tb_Address(地址信息表)地址信息表主要存儲地址,消費者在核對訂單時會選擇收貨地址,會用到它。
數據表結構如圖2-2-4-3-3所示。
圖2-2-4-3-3 地址信息表數據結構
?tb_Goods(商品信息表)商品信息表用來存儲商品信息,如商品編號、名稱、價格等,數據表結構如圖2-2-4-3-4所示。
圖2-2-4-3-4 商品信息數據表結構
?tb_ShoppingCart(購物車信息表)購物車信息表主要用來存儲商品信息和訂單信息,數據表結構如圖2-2-4-3-5所示。
圖2-2-4-3-5 購物車信息數據表結構
?tb_OrderInfo(訂單信息表)訂單信息表主要用來存儲訂單信息,數據表結構如圖2-2-4-3-6所示。
圖2-2-4-3-6 訂單信息數據表結構
?tb_OrderState(訂單狀態表)訂單狀態表主要用來存儲訂單狀態,數據表結構如圖2-2-4-3-7所示。
圖2-2-4-3-7 訂單狀態數據表結構
2.2.4.4 網站文件夾組織結構
網站文件夾組織結構圖如圖2-2-4-4-1所示。
圖2-2-4-4-1 網站文件夾組織結構
2.3 注冊模塊功能介紹
一個購物網站沒有注冊功能是不行的,只有注冊賬號過后才可以登錄,進而進行購物。下面圖2-3-1是筆者仿京東做的注冊頁面,前臺頁面大部分代碼來自京東原代碼,只有后臺是筆者自己寫的。
圖2-3-1 注冊頁面
前臺頁面引入了些js文件,這些文件的功能基本上在這里體現在對用戶輸入的郵箱、密碼、驗證碼的合法性的驗證。.cs代碼中有一個郵箱驗證功能,在筆者看來是一個重難點。郵箱驗證功能包括發送郵件前的驗證,發送郵件和激活賬戶三個步驟,而發送郵件又是這里的重難點。
下面是這個頁面的重點代碼:
MailMessage m = new MailMessage();建立郵件發送對象 m.From = new MailAddress(FROM);獲取發件人地址 m.To.Add(TO);獲取收件人地址
m.Subject = SUBJECT;獲取此電子郵件的主題 m.Body = BODY;獲取郵件正文
m.BodyEncoding = System.Text.Encoding.UTF8;設置郵件正文的編碼 m.IsBodyHtml = bIsHtml;設置郵件正文是否為HTML格式 m.ReplyTo = new MailAddress(FROM);設置郵件的回復地址
SmtpClient smtp = new SmtpClient(“smtp.163”, 25);初始化郵件傳輸協議 smtp.Credentials
=
new
NetworkCredential(“***”, “wangjing911214++”);用指定的用戶名和密碼作為用于驗證發件人身份的憑據
smtp.EnableSsl = true;smtp.Send(m);發送郵件
2.4 商品瀏覽及加入購物車
當登錄的用戶在首頁搜索欄里輸入包含“手機”的關鍵詞后,就會跳轉到手機展示界面。在手機展示界面點擊一個手機圖標,通過頁面傳參,將該手機的“商品編號”傳到ProductDisplay.aspx頁面,在ProductDisplay.aspx頁面根據獲取到的參數進行產品信息查詢,然后將該產品有關信息顯示在頁面上。商品信息顯示如圖2-4-1所示。
圖2-4-1 商品信息
在ProductDisplay.aspx頁面輸入購買數量,點擊“加入購物車”按鈕,會跳轉到AddToCart.aspx頁面,在這個頁面,用戶可以點擊“繼續購物”按鈕,回到ProductDisplay.aspx頁面,也可以點擊“去結算”按鈕,跳轉到MyShoppingCart.aspx頁面,如圖2-4-2所示。
圖2-4-2 購物車頁面
在上圖中,筆者在頁面上加了一個GridView控件,用來顯示已經加入購物車但未提交訂單的商品信息,包括商品圖片、名稱、單價、數量和總價。另外,消費者可以對單個商品進行數量的修改,如果不想要,可以直接點擊“刪除”。刪除操作也可以通過勾選復選框,點擊“刪除選中的商品”進行刪除操作。可以在上圖中看到“-”、“+”、“刪除”按鈕,它們都是放在GridView控件的模板列里的,點擊它們產生相應效果是通過觸發RowCommand事件實現的。在此事件里,用到了下面的代碼
:
GridViewRow
gvr
=(GridViewRow)(((Button)emandSource).NamingContainer);該代碼用來初始化點擊控件所在的數據行
int index = gvr.RowIndex;這句話用來獲取控件所在行的行索引值 string cardId = GridView1.Rows[index].Cells[0].Text.Trim();獲取點擊的btnReduce控件所在行的第一列的文本,第一列就是購物車編號,接下來就可以根據購物車編號查詢購物車信息,刪除一條記錄,修改商品數量等。
該頁面重要代碼如下:
Label lblText = e.Row.Cells[1].FindControl(“lblGoodsId”)as Label;string goodsidString = lblText.Text;string strSelect = “select * from tb_Goods where GoodsId='” + Convert.ToInt32(goodsidString)+ “'”;根據商品編號查詢商品信息 SqlConnection conn = operate.getcon();建立數據庫連接對象
SqlCommand scd = new SqlCommand(strSelect, conn);建立數據庫命令對象 conn.Open();打開數據庫連接
SqlDataReader sdr = scd.ExecuteReader();建立數據讀取器對象 sdr.Read();讀取數據
string img = @“..Images”;設置圖片路徑
Image imagGoods = e.Row.Cells[1].FindControl(“imgGoods”)as Image;imagGoods.ImageUrl = img + sdr[“Photos”].ToString();獲取圖片位置
lblText.Text = sdr[“GoodsName”].ToString();將第一列的Lable控件的文本值改為對應的商品名稱
e.Row.Cells[2].Text = “¥” + sdr[“Price”].ToString();
e.Row.Cells[4].Text = “¥” + e.Row.Cells[4].Text;sdr.Close();關閉數據讀取器 conn.Close();關閉數據庫連接 設置鼠標懸停行的顏色
e.Row.Attributes.Add(“onMouseOver”, “Color=this.style.backgroundColor;this.style.backgroundColor='lightBlue'”);e.Row.Attributes.Add(“onMouseOut”, “this.style.backgroundColor=Color;”);2.5 核對訂單
點擊上圖2-4-2所示頁面中的“去結算”按鈕,會跳轉到CheckOrder.aspx頁面,如圖2-5-1所示。
圖2-5-1 核對訂單信息
在圖2-5-1所示頁面可以修改收貨人信息、支付及配送方式。這個頁面最麻煩的是控制div的顯示與隱藏,筆者不僅在前臺頁面加了控制顯示與隱藏的jQuery代碼,在后臺頁用c#代碼也進行了控制,最終才勉強達到理想的效果。這個頁面有個供用戶選擇的“所在地區”,用到了三個DropDownList控件,第一個顯示省份,第二個顯示市,第三個顯示區(縣),這個最重要的是控制DropDownList的SelectedIndexChanged事件。因為當選中第一個下拉框中的某項時,需要根據這一
項綁定第二個下拉框中顯示的內容,第三個下拉框中內容又要根據第二個下拉框選中的內容來綁定。
該頁面重要代碼如下所示:
Label lblgoodsText = e.Row.Cells[1].FindControl(“lblGoodsId”)as Label;初始化第一列ID為lblGoodsId的控件
string goodsId = lblgoodsText.Text;獲取商品編號
string strSelectGoods = “select * from tb_Goods where GoodsId='” + Convert.ToInt32(goodsId)+ “'”;根據商品編號查詢商品信息 SqlConnection conn = operate.getcon();建立數據庫連接對象
SqlCommand scd = new SqlCommand(strSelectGoods, conn);建立數據庫命令對象
conn.Open();打開數據庫連接
SqlDataReader sdr = scd.ExecuteReader();建立數據讀取器對象 sdr.Read();讀取數據
Image imgPhone = e.Row.Cells[1].FindControl(“Image26”)as Image;在第一列中查詢ID為Image26的控件
imgPhone.ImageUrl = @“..Images” + sdr[“Photos”].ToString();設置圖片的路徑 lblgoodsText.Text = sdr[“GoodsName”].ToString();顯示商品名稱
e.Row.Cells[5].Text = sdr[“StoreState”].ToString();將每件商品對應的庫存狀態顯示出來
e.Row.Cells[2].Text = “¥” + sdr[“Price”].ToString();顯示商品單價 sdr.Close();關閉數據讀取器
string strgoodnum = “select * from tb_ShoppingCart where ShoppingCartId='” + Convert.ToInt32(e.Row.Cells[0].Text)+ “'”;根據購物車編號查詢購物車信息 SqlCommand scd2 = new SqlCommand(strgoodnum, conn);建立數據庫命令對象
SqlDataReader sdr2 = scd2.ExecuteReader();建立數據讀取器對象 sdr2.Read();讀取數據
e.Row.Cells[4].Text = “x” + sdr2[“GoodsNumber”].ToString();設置第4列的值
sdr2.Close();關閉數據讀取器 conn.Close();關閉數據庫連接
2.6 查看訂單及其詳情
當提交訂單后,就可以查看“我的訂單”。“我的訂單”頁面如圖2-6-1所示。此頁面可供消費者根據所選條件篩選訂單信息,也可以點擊“訂單號”或“查看”跳轉到另外個頁面查看訂單詳情。
圖2-6-1 訂單頁
在圖2-6-1所示的頁面中,比較麻煩點的就是篩選查看功能。篩選可根據訂單時間、訂單狀態、商品名稱、商品編號或訂單編號進行。這里面挺麻煩的是根據商品編號或商品名稱進行查詢。因為訂單表并未包含商品編號或商品名稱,而只能通過購物車表進行查詢。另外一個難點是,在根據商品編號或商品名稱進行查詢時,要考慮到一件商品可能存在于一條訂單中,也可能存在于多條訂單中,不同的情況,查詢語句也會有差異。
點擊任意一條記錄的訂單號或“查看”,都會跳轉到OrderDetail.aspx頁面,如圖2-6-2所示。
圖2-6-2 訂單詳細頁
訂單詳細頁主要顯示收貨人信息、支付及配送方式、發票信息、商品清單等信息。該頁面簡單明了且美觀,離不開div+css布局,層與層的嵌套稍不注意就會讓頁面失去想要達到的效果。
結 論
本次畢業設計共花時間近七周,在筆者的努力下,在老師和同學的幫助下,筆者的“仿京東購物網站”能實現消費者購物的基本流程。主要流程是用戶注冊、登錄、瀏覽商品、加入購物車、核對訂單、查看訂單和訂單詳情。其中花時間最多的是核對訂單,因為這個頁面需要控制層的顯示與隱藏,而本人能力有限,費了九牛二虎之力才基本達到京東上原有的效果。
在人生做學生的最后一段時間,能有效利用起來是很有意義的。做畢業設計作為高校畢業生必不可少的學習環節,是有它的獨到之處的。第一,通過自主學習和尋求幫助,它可以使人的專業知識水平與分析和解決問題的能力得到快速提升;其二,堅持做能鍛煉人的意志力;其三,在不斷的碰到問題然后解決問題的循環過程中可以嘗到失敗的無奈和成功帶來的喜悅;其四,各方面能力的提升會為畢業生就業甚至未來的發展起到重要促進作用;其五,畢業設計交到老師那里可以為老師提供改進教學的素材;其六,把畢業設計項目和論文傳到互聯網上,可以給更多的愛好者或專業人士提供解決問題的素材和資料,讓更多的人學得更多的東西,從而促
進社會和人類文明的發展。“書山有路勤為徑,學海無涯苦作舟”,學習應該說主要靠自己,靠自己的勤奮。“活到老,學到老,還有三分沒學到”,要想學精一樣東西,不是三兩天就能擺平的,而是需要通過自己長期的刻苦努力才能達到,所以,不管現在還是以后,都應該樹立學習的意識,要踏實認真地學,堅持學,才能學到真本事、真功夫。
我國現在正處在社會主義發展的初級階段,也正以矯健的步伐朝著全面小康奮進,其間充滿競爭和挑戰,剛步入社會的我們面對的壓力可能很大,但是,我們不能悲觀,而要將壓力轉換為動力,努力為自己創造機遇,使自己盡可能快地融入社會,成為社會人。
今后不管自己發展如何,都不應該忘了曾經幫助過我們、支持過我們的人,要懂得回報,尤其是我們的祖國,我們應該為祖國的發展貢獻自己的青春!
致 謝
在做畢業設計的過程中,筆者遇到了不少問題,大多數是通過自己思考或查閱資料解決的,但有部分是通過請教老師和同學才得以解決的,真心感謝這些老師和同學,他們的幫助給我帶來了喜悅,給予我信心,讓我較順利地完成了畢業設計。在這里要特別感謝我們的指導老師史紅軍老師和宋全記老師,他們從開始到結束就一直關心我們,指導我們,盡職盡責,給予了我們莫大的幫助。也感謝從北軟來的舒楊老師和郭海林老師,他們遠道而來給我們提供了技術上的幫助。
希望畢業后還有機會見到這些老師和同學,最后祝愿各位老師工作順利、身體健康,祝愿各位同學前程似錦、生活愉快!
附 錄 1 錯誤收集
錯誤1:您正在查找的資源(或者它的一個依賴)可能已被刪除,或其名稱已更改,或暫時不可用,請檢查以下URL并確保其拼寫正確,如圖1-1所示。
圖1-1 錯誤1 下面是解決方法,如圖1-2所示。
圖1-2 錯誤1的解決方法
錯誤2:某某附近有語法錯誤,如圖1-3所示。
圖1-3 錯誤2及解決方法
錯誤3:要求已打開且可用的連接。連接的當前狀態為已關閉,錯誤如圖1-4和1-7所示。
圖1-4 連接狀態出錯
分析結果如圖1-5所示。
圖1-5 錯誤3的分析結果
對錯誤3做修改,如圖1-6所示。
圖1-6 錯誤3修改后的展示
圖1-7 連接狀態錯誤及解決方法
錯誤4:連接嘗試失敗,如圖1-8所示。
圖1-8 連接嘗試失敗錯誤
錯誤5:必須放在具有runat=server的窗體標記內,如圖1-9所示。
圖1-9 錯誤5 解決方法:把你的代碼放在