亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET之電子商務系統開發-3(訂單)

2019-11-17 01:55:05
字體:
來源:轉載
供稿:網友

asp.net之電子商務系統開發-3(訂單)

一、前言

繼上次的購物車,這是第三篇。記錄一下訂單功能。這功能做的時候,走過彎路,很是燒腦,因為思路沒理順,數據庫設計的也不怎么好,做到一半才發現有問題,接著把數據庫重新設計好,理清思路后,終于完成了。

二、開始

1.先看一下一開始錯的思路。

在購物車點擊下訂單,接著跳到訂單頁:

@)K~GQNT}%9377PE5TH$KML

填好信息后點擊提交訂單,訂單也能完成。但這時,你打開數據庫中的訂單表會發現,訂單表里面只有一個商品。

2.正確的思路

這時我意識到問題的嚴重性,后臺的ADD代碼出了問題,(因為是錯誤的add代碼,就不貼出來了,怕誤導以后的我:D.不過下面會說一說錯在哪了。)數據庫中表設計也錯誤了,不能將訂單信息和訂單詳細信息放在一張表里面,關系是一對多的。接著后來對數據庫進行更改,得到了如下兩張表:

@D$)0DN5LT})W@UJT~{PBSI這是訂單詳細信息表,里面除了存放Goods_ID、Goods_Name、等商品信息外,還有一個U_ID.

_[TOI4Y6FD%HFPGT9DCP4MD這是訂單表,里面存放了User_Name、Order_status(訂單狀態)、Method(送貨方式)、Style(付款狀態)以及U_ID。(后面的Goods_Num什么的,有關商品詳細信息的字段忘記刪了,它們沒用。)還有Order_time??梢钥吹?,這兩張表有相同一個U_ID.他是關聯兩張表的重點。

然后的話,還有一張地址表:

_55GT6)6`NBLN]DCF894S00這是地址表,存放收貨地址信息的,里面也有一個U_ID。

3.后臺代碼

正確的表設計好后,就將代碼也改了一遍,當你點擊提交訂單后,觸發了button事件,具體如下:

PRotected void Button3_Click(object sender, EventArgs e)        {            int num;            //提交商品            DataTable getGoodsid = bllShopCar.GetList("[ShopUser]='" + Request.Cookies["ShopUser"].Value + "'").Tables[0];            DataSet getnumway = bllShopCar.getnum(Request.Cookies["ShopUser"].Value);                     num =Int32.Parse(getnumway.Tables[0].Rows[0]["Num"].ToString());            for (i = 0; i < num; i++)            {                Goodsid = Int32.Parse(getGoodsid.Rows[i]["Goods_ID"].ToString()); //獲取Godos_ID                molOrderinfo.Goods_ID = Goodsid; //提交商品ID到Orderinfo                Goods_Num = getGoodsid.Rows[i]["Goods_Num"].ToString();                molOrderinfo.Goods_Num = Int32.Parse(Goods_Num); //提交商品數量到Orderinfo                DataSet getprice = bllgoods.GetList("Goods_ID=" + Goodsid);                In_Storeprice = getprice.Tables[0].Rows[0]["In_store_price"].ToString(); //獲取商品單價                s = Int32.Parse(In_Storeprice) * Int32.Parse(Goods_Num);                molOrderinfo.Goods_Money = s; //提交該商品小計到Orderinfo                              DataSet getallprice = bllShopCar.getAllprice(Request.Cookies["ShopUser"].Value);                a = getallprice.Tables[0].Rows[0][0].ToString();                               molOrderinfo.Goods_Name = getprice.Tables[0].Rows[0][1].ToString(); //提交商品名稱到Orderinfo                            molOrderinfo.U_ID = Int32.Parse(sj);//生成一個訂單編號給Oredrinfo                bllOrderinfo.Add(molOrderinfo);            }            molOrder.Money_Sum = Int32.Parse(a); //提交該訂單總價到Order            molOrder.User_Name = Request.Cookies["Username"].Value;  //提交該訂單主User_name到Order            molOrder.Order_status = "已提交";            molOrder.Method = method.Value;            molOrder.Style = "待付款";            molOrder.U_ID = Int32.Parse(sj); //生成一個訂單編號給Oredr            DateTime dt = DateTime.Now;            molOrder.Order_time = dt;            bllorder.Add(molOrder);            //提交地址            molAddress.User_Name = Request.Cookies["Username"].Value;            molAddress.Address_info = TextArea1.Value;            molAddress.Zipcode = TextBox3.Text;            molAddress.Get_Name = TextBox1.Text;            molAddress.Email = TextBox4.Text;            molAddress.Phone = TextBox2.Text;            molAddress.Method = method.Value;           // string sj2 = DateTime.Now.Day.ToString() + DateTime.Now.TimeOfDay.Hours.ToString() + DateTime.Now.TimeOfDay.Minutes.ToString() + DateTime.Now.TimeOfDay.Milliseconds.ToString();            molAddress.U_ID = Int32.Parse(sj);            bllAddress.Add(molAddress);            Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('提交成功!');location.href='PersonCenter.aspx'</script>");            bllShopCar.DeleteShopCar(Request.Cookies["ShopUser"].Value);        }

首先看第一行,Getlist方法,根據上一篇中說到的ShopUser獲取ShopCar表中的商品ID;第二行,getnum方法獲取在相同ShopUser下的商品的數量,就是select count(*);第三行,把數量給事先設好的變量:num。接著到了最關鍵的地方,add購物車中所有商品,注意是所有,不是一個商品,之前說過,剛開始那個錯誤的思路就是沒有用for循環遍歷出購物車中所有商品,因此只能提交一個商品到訂單。后來就寫了一個for,試了幾次,發現沒問題。for中第一行,條件:循環次數一定是小于num的;接著for內第三行,獲取商品數量,getGoods_id的后面是.Row[i],不是.Row[1],因為它有多條數據,需要遍歷,不是只有一條數據。接著下面都有注釋了。最后for結束,將訂單的詳細信息提交放在for循環內,就是for中最后一行的add(molOrderinfo),這樣就能實現提交多個購物車中商品了。for之后,不需要循環提交的是具有唯一性的訂單總價和訂單人等一些信息以及最后的地址。最后還有一個U_ID:

string sj = DateTime.Now.Day.ToString() + DateTime.Now.TimeOfDay.Hours.ToString() + DateTime.Now.TimeOfDay.Minutes.ToString() + DateTime.Now.TimeOfDay.Milliseconds.ToString();

這就是訂單編號,將三張表關聯,一次訂單只會生成一個,且不會重復。

4.實現后的效果

先看一下數據庫中增添了什么數據:

TLRM6U1RTO4}GV~}Z[(S5~G這是訂單表,可以看到,剛剛的訂單信息已經添加進去了。

V3[I1]IBJ1F93KZQOQP2~$U這是訂單詳細表,可以看到U_ID是一樣的,兩個商品也在里面。

image這是收貨地址表。

最后,看一下個人中心里面的“我的訂單”

3LA4X)%O6AUXMLTGT3DN9EI

確實是剛剛生成的訂單,此時的訂單狀態是待付款。(因為分頁控件的皮膚引用出了點問題,所以有點丑:D)。

接著點擊訂單編號,跳轉到:

P~Z0EA0IIVU_P41WYL_[HFM

這頁將三張表整合,通過U_ID全部讀出來:

public void dataload1()        {                molOrder = bllOrder.GetModel1(int.Parse(Request["ID"]));                                  lblorderid_text.Text = molOrder.U_ID.ToString();            lblordertime.Text = molOrder.Order_time.ToString();            moladdress = blladdress.GetModel2(int.Parse(Request["ID"]));            lblperson.Tex
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕成人精品久久不卡| 亚洲韩国青草视频| 91天堂在线视频| 97精品一区二区三区| 欧美中文在线视频| 欧美亚洲激情在线| 91欧美日韩一区| 成人午夜在线观看| 欧美精品第一页在线播放| 亚洲午夜未删减在线观看| 国产精品第一视频| 国产欧美亚洲视频| 日韩成人在线视频| 久久亚洲一区二区三区四区五区高| 91在线观看免费高清完整版在线观看| www高清在线视频日韩欧美| 亚洲国产精品免费| 欧美黑人视频一区| 亚洲午夜av电影| 亚洲欧美日韩爽爽影院| 亚洲国产精品人人爽夜夜爽| 久久久女人电视剧免费播放下载| 国模精品视频一区二区三区| 欧美在线免费看| 国语自产在线不卡| 亚洲欧美一区二区激情| 亚洲精品福利在线观看| 日韩小视频在线| 红桃av永久久久| 91网站在线看| 亚洲精品小视频在线观看| 欧美色视频日本高清在线观看| 精品视频—区二区三区免费| 国产精品96久久久久久| 81精品国产乱码久久久久久| 97在线视频一区| 欧美丰满片xxx777| 国产日韩在线视频| 国产在线拍揄自揄视频不卡99| 中文字幕欧美精品日韩中文字幕| 国产精品v日韩精品| 欧美激情第99页| 亚洲天堂影视av| 91在线精品视频| 亚洲欧洲日韩国产| 欧美综合激情网| 久久久久99精品久久久久| 日韩一区二区三区国产| 亚洲在线免费观看| 欧美放荡办公室videos4k| 欧美电影免费观看高清| 欧美黄色成人网| 亚洲电影在线观看| 久久久久久国产三级电影| 国产日韩在线看片| 另类美女黄大片| 91亚洲精品久久久久久久久久久久| 日本亚洲精品在线观看| 国产亚洲视频中文字幕视频| 亚洲国产美女精品久久久久∴| 欧美性猛交xxxx富婆| 欧美成年人视频网站欧美| 国产不卡av在线免费观看| 亚洲国产成人精品电影| 亚洲永久免费观看| 欧美精品免费播放| 亚洲影影院av| 91精品在线影院| 欧美另类在线观看| 欧美在线视频导航| 91九色国产在线| 久久久人成影片一区二区三区观看| 国产成人精品久久久| 亚洲欧美成人精品| 欧美性猛交xxxx偷拍洗澡| 国产日韩换脸av一区在线观看| 在线日韩精品视频| 国产成人一区二区三区电影| 欧美激情网站在线观看| 91精品中国老女人| 欧美日韩午夜剧场| 91精品国产色综合久久不卡98口| 久久免费视频网站| 96国产粉嫩美女| 一本色道久久综合狠狠躁篇怎么玩| 97久久精品人人澡人人爽缅北| 欧美精品激情在线| 最新69国产成人精品视频免费| 国产日韩欧美日韩大片| 成人免费视频网| 日韩免费观看av| 欧美第一页在线| 国产精品久久久久99| 97精品欧美一区二区三区| 久久久久中文字幕| 国产精品久久99久久| 久久躁狠狠躁夜夜爽| 久久中文久久字幕| 国产精品成久久久久三级| 国产精品久久久久9999| 色婷婷综合久久久久中文字幕1| 成人激情在线观看| 中文国产亚洲喷潮| 国产精品直播网红| 日韩精品视频在线观看免费| 欧美视频在线免费看| 亚洲国产精彩中文乱码av| 精品伊人久久97| 欧美性生活大片免费观看网址| 欧美电影免费观看高清完整| 久久色免费在线视频| 久久久人成影片一区二区三区| 韩国19禁主播vip福利视频| 性色av一区二区三区红粉影视| 亚洲午夜性刺激影院| 国产成人精品日本亚洲专区61| 国产精品亚洲一区二区三区| 欧美性生交大片免费| 欧美激情喷水视频| 国产精品揄拍一区二区| 亚洲电影免费观看高清完整版| 国产欧美在线播放| 91久久精品视频| 91精品国产91久久久久| 日韩电影中文字幕| 最近2019中文字幕在线高清| 日韩欧美在线视频日韩欧美在线视频| 91麻豆国产语对白在线观看| 久久久久国产视频| 中文字幕亚洲图片| 在线观看中文字幕亚洲| 午夜精品视频网站| 日韩欧美精品中文字幕| 欧美日韩国产色视频| 国产精品爽爽爽| 九九热这里只有精品免费看| 久热在线中文字幕色999舞| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲热线99精品视频| 亚洲精品视频中文字幕| 国产精品影片在线观看| 国产婷婷97碰碰久久人人蜜臀| 国产精品羞羞答答| 日韩在线视频播放| 日韩专区中文字幕| 欧美精品九九久久| 自拍亚洲一区欧美另类| 人人做人人澡人人爽欧美| 成人美女免费网站视频| 91免费电影网站| 日本高清不卡在线| 日韩av不卡在线| 日韩在线播放av| 欧美日韩一区二区在线播放| 在线观看免费高清视频97| 国产欧美精品va在线观看| 57pao国产精品一区| 国产91九色视频| 久久久国产精品一区| 中文字幕一区二区精品| 亚洲精品国产品国语在线| 美日韩丰满少妇在线观看| 欧美日韩国产影院| 国产精品久久久久久久久久久不卡|