asp.net基於session實現購物車的方法_實用技巧

來源:互聯網
上載者:User

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

//加入購物車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

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程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.