ASP.NET 购物车

这是做ASP.NET网上商城项目时自己写的购物车类,因为我这个项目的在客户没注册,没有登录时也可去挑选自已喜欢的商品,这个购物车我是放大Session[""]数组中的,首先需要一个实体类,这个类中存放的是我将要在购物车中为客户保存商品的一些信息,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;


/// <summary>
///CartGoods 的摘要说明
/// </summary>
public class CartGoods
{
    private int goodsID;                  //商品ID
    private int goodsNum;                //购买的商品的数量
    private string goodsName;            //购买的商品的名称
    private string goodsPhoto;            //购买的商品的图片路径
    private float goodsPrice;                  //购买的商品的价格

    public int GoodsID
    {
        get
        {
            return goodsID;
        }
        set
        {
            this.goodsID = value;
        }
    }
    public int GoodsNum
    {
        get
        {
            return goodsNum;
        }
        set
        {
            this.goodsNum = value;
        }
    }
    public string GoodsName
    {
        get
        {
            return goodsName;
        }
        set
        {
            this.goodsName = value;
        }
    }
    public string GoodsPhoto
    {
        get
        {
            return goodsPhoto;
        }
        set
        {
            this.goodsPhoto = value;
        }
    }
    public float GoodsPrice
    {
        get
        {
            return goodsPrice;
        }
        set
        {
            this.goodsPrice = value;
        }
    }
}
public class MyCartGoods : List<CartGoods>            //这个类继承泛型的CartGoods类,这样是为了在后面向购物车中存放商品的时候不会漏掉商品信息
{
    public MyCartGoods()
    {
       
    }
}

 

 

 

下面的类是购物车主要的操作,(将商品加入购物车,查看购物车,删除购物车的不要的商品,修改购物车商品的数量,清空购物车)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.SessionState;
using System.Collections;
using System.Data;
using System.Data.SqlClient;

 

/// <summary>
///CartClass 的摘要说明
/// </summary>
public class CartClass
{
    HttpSessionState session;    //此处申明一个HttpSessionState类型的变量,名为session

 public CartClass(HttpSessionState cSession)     //构造方法,在实例化此类时需要传一个Session是页面上的Session
 {
        this.session = cSession;
 }
    /// <summary>
    /// 购物车属性
    /// </summary>
    private MyCartGoods MyShoppingCart
    {
        get
        {
            object o = this.session["MyCart"];
            if (o == null)
            {
                InShoppingCart();
                return (MyCartGoods)session["MyCart"];
            }
            return (MyCartGoods)o;
        }
        set
        {
            this.session["MyCart"] = value;
        }
    }
//创建购物车
    public void InShoppingCart()
    {
        MyCartGoods shoppingCart = new MyCartGoods();
        session["MyCart"] = shoppingCart;
    }
    /// <summary>
    /// 将商品加入到购物车中,此处我传了购物中需要的变量,
      ///其实可以直接将泛型的那个对象传进来就行了不过需要在掉用此方法前将这些参数都加载到MyCartGoods中
    /// </summary>
    /// <param name="gid"></param>
    /// <param name="gname"></param>
    /// <param name="gphoto"></param>
    /// <param name="gprice"></param>
    ///
    public void AddToCart(int gid,string gname,float gprice,string gphoto)
    {
        CartGoods goods = new CartGoods();
        MyCartGoods tempCart = MyShoppingCart;
        if (tempCart.Count == 0)
        {
            goods.GoodsID = gid;
            goods.GoodsName = gname;
            goods.GoodsPrice = gprice;
            goods.GoodsPhoto = gphoto;
            goods.GoodsNum = 1;
            tempCart.Add(goods);
            MyShoppingCart = tempCart;
        }
        else
        {
            for (int i = 0; i < tempCart.Count; i++)
            {
                if (gid == tempCart[i].GoodsID)
                {
                    tempCart[i].GoodsNum += 1;
                    return;
                }
            }
            goods.GoodsID = gid;
            goods.GoodsName = gname;
            goods.GoodsPrice = gprice;
            goods.GoodsPhoto = gphoto;
            goods.GoodsNum = 1;
            tempCart.Add(goods);
            MyShoppingCart = tempCart;
        } 
    }
    /// <summary>
    /// 删除指定商品
    /// </summary>
    /// <param name="cartgood"></param>
    public void DelOneGoods(CartGoods cartgood)
    {
        MyCartGoods myCartGoods = MyShoppingCart;
        for (int i = 0; i < myCartGoods.Count; i++)
        {
            if (cartgood.GoodsID == myCartGoods[i].GoodsID)
            {
                myCartGoods.RemoveAt(i);
                MyShoppingCart = myCartGoods;
                break;
            }
        }
    }
    /// <summary>
    /// 清空购物车
    /// </summary>
    public void ClearMyCart()
    {
        int counter = MyShoppingCart.Count;
        MyShoppingCart.RemoveRange(0, counter);
    }
    /// <summary>
    /// 得到购物车中商品种类
    /// </summary>
    /// <returns></returns>
    public int GetPingZong()
    {
        return MyShoppingCart.Count;
    }
    /// <summary>
    ///计算购物车中商品的总价
    /// </summary>
    /// <returns></returns>
    public float GetZongJia()
    {
        MyCartGoods myCart = MyShoppingCart;
        float zongjia = 0;
        for (int i = 0; i < MyShoppingCart.Count; i++)
        {
            zongjia += (MyShoppingCart[i].GoodsNum * MyShoppingCart[i].GoodsPrice);
        }
        return zongjia;
    }
    /// <summary>
    /// 修改购物车中商品数量
    /// </summary>
    /// <param name="gid"></param>
    /// <param name="gnum"></param>
    public void UpdateGNum(int gid,int gnum)
    {
        MyCartGoods myCart = MyShoppingCart;
        for (int i = 0; i < MyShoppingCart.Count; i++)
        {
            if (gid == MyShoppingCart[i].GoodsID)
            {
                MyShoppingCart[i].GoodsNum = gnum;
            }
        }
    }
    //传对象的方法,上面说的传购物车对象的方法就是这个方法
    //public void AddToCart(CartGoods goods)
    //{
    //    MyCartGoods tempCart = MyShoppingCart;
    //    if (tempCart.Count == 0)
    //    {  
    //        goods.GoodsNum = 1;
    //        tempCart.Add(goods);
    //        MyShoppingCart = tempCart;
    //    }
    //    else
    //    {
    //        for (int i = 0; i < tempCart.Count; i++)
    //        {              
    //            if (goods.GoodsID == tempCart[i].GoodsID)
    //            {
    //                tempCart[i].GoodsNum += 1;
    //            }
    //            else
    //            {
    //                goods.GoodsNum = 1;
    //                tempCart.Add(goods);
    //                MyShoppingCart = tempCart;
    //            }             
    //        }
    //    }
    //}
   
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vs2008+mssql2005 │ CheckCode.aspx │ CheckCode.aspx.cs │ Default.aspx │ Default.aspx.cs │ Describe.aspx │ Describe.aspx.cs │ GoodsInfo.aspx │ GoodsInfo.aspx.cs │ Login.aspx │ Login.aspx.cs │ ShoppingCart.aspx │ ShoppingCart.aspx.cs │ SuccessShop.aspx │ SuccessShop.aspx.cs │ Web.config │ 必读:程序使用说明.doc │ ├─App_Code │ DB.cs │ ├─App_Data │ db_NetShop.mdf │ db_NetShop_log.ldf │ ├─Image │ │ 02-_small9[20061102090405].jpg │ │ 1.JPG │ │ 2.bmp │ │ 3.bmp │ │ 3.gif │ │ anniu1.gif │ │ anniu2.gif │ │ asp.net.jpg │ │ fjtp.jpg │ │ login.css │ │ Login.GIF │ │ login_logo.jpg │ │ login_shadow.jpg │ │ RESET.GIF │ │ sy_01.jpg │ │ sy_02.jpg │ │ sy_03.jpg │ │ sy_04.jpg │ │ sy_05.jpg │ │ sy_06.jpg │ │ sy_07.jpg │ │ sy_08.jpg │ │ sy_09.jpg │ │ 图片2.jpg │ │ 水杯.bmp │ │ 牙刷.jpg │ │ 首页(2).jpg │ │ │ └─购物车 │ │ {C3706893-B1BA-4C59-9DF1-C683DBB6A8E7}.jpg │ │ 关闭按钮.jpg │ │ 商品基本信息.jpg │ │ 子页中间.jpg │ │ 子页头.jpg │ │ 子页底.jpg │ │ 详细信息.jpg │ │ 购物车.jpg │ │ 进入后台按钮.jpg │ │ │ └─主页 │ 中间.jpg │ 头.jpg │ 底部.jpg │ 最新商品信息.jpg │ └─Image1 │ 02-_small9[20061102090405].jpg │ 3.gif │ fjtp.jpg │ fu.jpg │ 图片2.jpg │ 水杯.bmp │ └─购物车 │ 关闭按钮.jpg │ 商品基本信息.jpg │ 子页中间.jpg │ 子页头.jpg │ 子页底.jpg │ 详细信息.jpg │ 购物车.jpg │ 进入后台按钮.jpg │ └─主页 中间.jpg 头.jpg 底部.jpg 最新商品信息.jpg

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值