1. 程式人生 > >Asp.net基於session實現購物車的方法

Asp.net基於session實現購物車的方法

lai 程序 clas contain ext info border mode man

本文實例講述了asp.net基於session實現購物車的方法。分享給大家供大家參考,具體如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 //加入購物車 protected void LinkButton2_Click(object sender, EventArgs e) { DataTable dt = null; //用戶購買商品 如果 沒有登錄 則提示登錄 if (Session["userName"] == null) { Common.MessageBox.ShowAndRedirectTo(this.Page, "請先登錄 再購買商品!", "Login.aspx"); } else { //如果己經登錄 則根據接收過來的商品編號 根據該商品編號來獲取該商品的詳細信息(返回實體類)
//返回信息有 商品編號 商品名稱 商品市場價 商品的大小(siz) 圖片(image) 重量 總價 購買數量 總共要支付的錢 商品總重量 Model.product model = new Model.product(); //根據商品編號 獲取該商品詳細信息 model.id =(int) Request.QueryString.GetValues("uid")[0]; System.Data.SqlClient.SqlDataReader sdr=DAL.product.drpr(model); if (Session["ShopCar"] == null)
{ dt = new DataTable(); //商品編號 dt.Columns.Add("id", typeof(Int32)); //商品價格(本站價格) dt.Columns.Add("localprice", typeof(Double)); //商品發布價格 dt.Columns.Add("posttime", typeof(String)); //購買數量 dt.Columns.Add("buycount", typeof(Int32)); //商品總價 dt.Columns.Add("sumprice", typeof(Int32)); //顏色 dt.Columns.Add("color", typeof(String)); //商品大小 dt.Columns.Add("size", typeof(String)); //商品名稱 dt.Columns.Add("title", typeof(String)); //商品類型 dt.Columns.Add("cate", typeof(String)); //商品圖片 dt.Columns.Add("image", typeof(String)); //商品時間 dt.Columns.Add("only", typeof(String)); //商品重量 dt.Columns.Add("weight", typeof(String)); //商品總重量 dt.Columns.Add("sumweight", typeof(String)); } else { //如果購物車不為空時 剛判斷 該商品的信息是否存在購物車中 如果 存在則 把該商品的數量加上1 dt = Session["ShopCar"] as DataTable; for (int j = 0; j < dt.Rows.Count; j++) { //如果讀到該商品的編號 則該商品己經存在 則將該商品的數量加1 if (dt.Rows[j]["id"].ToString() = model.id.ToString() && Convert.ToString(dt.Rows[i]["color"]) == d_color.Text) { //如果商品 己經存在 則購買數量加上1 dt.Rows[j]["buycount"] = Convert.ToInt32(dt.Rows[j]["buycount"]) + 1; //Session保存購物車 Session["ShopCar"] = dt; Response.Redirect("ShoppingCar.aspx"); return; } } } //如果該商品信息不存在 購物車中 則添加一個新的商品信息 DataRow row = dt.NewRow(); if (dr.Read()) { //商品的重量 row["weight"] = sdr["_weight"].ToString(); //商品的總重量 row["sumweight"] = sdr["_weight"].ToString(); //商品購買 時間 row["only"] = DateTime.Now.ToString("yyyyMMddhhmmssfff"); //商品型號 row["size"] = _size.Text; //商品圖片 row["image"] = Image_1.ImageUrl; //商品類型名稱 row["cate"] = cate_name.Text; //商品名稱 row["title"] = title_l.Text; //商品顏色 row["color"] = d_color.Text; //商品編號 row["id"] = Convert.ToInt32(dr["_id"].ToString()); //商品本站價格 row["localprice"] = Convert.ToDouble(sdr["_localprice"].ToString()); //商品發布時間 row["posttime"] = Convert.ToString(sdr["_posttime"].ToString()); //購買數量 默認為1 row["buycount"] = 1; //商品總價 row["sumprice"] = Convert.ToDouble(sdr["_localprice"].ToString()); dt.Rows.Add(row); } dr.Close(); //保存商品信息 Session["dt"] = dt; Response.Redirect("shoplist.aspx"); } } //獲取商品信息 (商品總重量 總價格) private void GetCountInfo() { DataTable dt = null; if (Session["ShopCar"] != null) { //顯示提示信息 Label1.Visible = true; } else { dt = Session["ShopCar"] as DataTable; for (int j = 0; j < dt.Rows.Count; j++) { //獲取單個商品的總價(計算公式:商品的數量 乘以商品的價格) dt.Rows[j]["sumprice"] = Convert.ToInt32(dt.Rows[j]["localprice"]*Convert.ToInt32(dt.Rows[j]["buycount"])); //獲取單個商品的總重量 (計算公式:購買的商品數量 乘以商品的單個重量) dt.Rows[j]["sumweight"] = Convert.ToInt32(dt.Rows[j]["weight"] * Convert.ToInt32(dt.Rows[j]["buycount"])); //保存信息 Session["ShopCar"] = dt; //顯示用戶購物車的所有商品信息 ShowShoppingCarInfo(); } } } /// <summary> /// 顯示購買的商品信息 /// </summary> private void ShowShoppingCarInfo() { DataTable dt = null; //定義獲取商品總價格 變量 double wholePrice = 0; //定義獲取商品的總重量 變量 double wholeWeight = 0; //用戶己經購買 if (Session["ShopCar"] != null) { dt = Session["ShopCar"] as DataTable; for (int j = 0; j < dt.Rows.Count; j++) { //獲取所有商品 總價格 wholePrice += Convert.ToDouble(dt.Rows[j]["sumprice"]); //獲取商品的 總重量 wholeWeight += Convert.ToDouble(dt.Rows[j]["sumweight"]); } //總價格 wprice.Text = wholeprice.ToString(); //總重量 wweight.Text = wholeweight.ToString(); //保存商品總價格 Session["wholeprice"] = wholeprice; //保存商品 總重量 Session["wholeweight"] = wholeweight; //商品總項數 wholeprocount.Text = Convert.ToString(dt.Rows.Count); //保存商品的總項 Session["wholeprocount"] = wholeprocount.Text; //如果項數為空時 if (dt.Rows.Count == 0) { //顯示用戶未購買商品 Label1.Visible = true; } } else { //如果沒有購買商品 則顯示提示信息 Label1.Visible = true; GridView1.DataSource = null; GridView1.DataBind(); } }

從購物車移除一件商品:Row_Command

?
1 2 3 4 5 6 7 8 9 10 if(e.CommandName=="del") { DataTable dt=Session["ShopCar"] as DataTable; for(int j=0;j<dt.Rows.count;j++){ if(dt.Rows[j]["only"]==e.CommandArgument) { dt.Rows.Remove(j); } } }

希望本文所述對大家asp.net程序設計有所幫助。

Asp.net基於session實現購物車的方法