asp.net购物车实现-------结合session方式

本文介绍了一个简单的购物车功能实现过程,包括如何创建购物车表、添加商品到购物车及检查商品是否已存在于购物车中。文章通过具体代码展示了从用户点击购买按钮到跳转至购物车页面的整个流程。

/// <summary>
    /// 购买
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void imgbtn_Buy_Click(object sender, ImageClickEventArgs e)
    {
        if (Session["CurrentUser"] != null)
        {
            if (Session["Cart"] == null)
            {
                this.BuildCart();
            }
            else
            {
                DataTable cart = Session["Cart"] as DataTable;
                if (this.ExistBook(cart))
                {
                    this.BuildSession(cart);
                }               
            }
            Response.Redirect(@"Cart.aspx");
        }
        else
        {
            Response.Redirect(@"Membership/UserLogin.aspx");
        }
    }
    /// <summary>
    /// 已有图书
    /// </summary>
    /// <param name="cart"></param>
    /// <returns></returns>
    public bool ExistBook(DataTable cart)
    {
        foreach (DataRow dr in cart.Rows)
        {
            if (dr["BookName"].ToString().Equals(this.lblBookName.Text.Trim()))
            {
                dr["Number"] = Convert.ToInt32(dr["Number"]) + 1;
                Session["Cart"] = cart;
                Response.Redirect("Cart.aspx");
            }
        }
        return true;
    }
    /// <summary>
    /// 新建购物车表
    /// </summary>
    public void BuildCart()
    {
        DataTable cart = new DataTable();
        cart.Columns.Add("BookId");
        cart.Columns.Add("BookName");
        cart.Columns.Add("Number");
        cart.Columns.Add("UnitPrice");
        cart.Columns.Add("ImageUrl");

        this.BuildSession(cart);
    }
    /// <summary>
    /// 添加新书
    /// </summary>
    /// <param name="cart"></param>
    public void BuildSession(DataTable cart)
    {
        DataRow dr = cart.NewRow();
        dr["BookId"] = ViewState["BookId"].ToString();
        dr["BookName"] = this.lblBookName.Text.Trim();
        dr["Number"] = "1";
        dr["UnitPrice"] = this.lblPrice.Text.Substring(0, this.lblPrice.Text.Length - 1); ;
        dr["ImageUrl"] = this.lblISBN.Text.Trim();
        cart.Rows.Add(dr);
        Session["Cart"] = cart;
    }  

 

我写的比较简单,没有考虑更改和删除订单的情况。

但是购物车的基本实现已经完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值