C#购物车的实现

    购物车的实现形式多样,在这里,我用到了虚拟表和sesson方法存储。
    首先创建一个商品的表,GridView控件绑定数据源。在GridView中添加一个列,控件为
buttonfield.在GridView的RowCommand事件写代码:
         DataTable cart = new DataTable();//新建虚拟表
        if (Session["shoppingcart"] == null)
        {
            cart.Columns.Add("pname", typeof(string));//编辑表的列的属性
            cart.Columns.Add("pid", typeof(string));
            cart.Columns.Add("price", typeof(string));
            Session["shoppingcart"] = cart;
        }
        cart = (DataTable)Session["shoppingcart"];
        int n = Convert.ToInt32(e.CommandArgument);
      string p1 = GridView1.Rows[n].Cells[0].Text;//获得商品的数据
      string p2 = GridView1.Rows[n].Cells[1].Text;
      string p3 = GridView1.Rows[n].Cells[2].Text;
        DataRow rr = cart.NewRow();
        rr["pname"] = p1;
        rr["pid"] = p2;
        rr["price"] = p3;
        cart.Rows.Add(rr);//增加一条记录
        
        Session["shoppingcart"] = cart;
购物车页面:添加一个未绑定数据源的GridView控件:一个显示总额的lable的控件。
在页面加载事件中写代码:
if (!this.IsPostBack){
        GridView1.DataSource = Session["shoppingcart"];
        GridView1.DataBind();
        double sum = 0.0;
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
           
         sum = sum + (double.Parse(GridView1.Rows .Cells[2].Text));
           
        }
        Label2.Text ="总计:"+ sum.ToString()+"元";
        }
这样显示GridView控件了虚拟表的数据并且把总共的金额进行了加总。
增添两个按钮控件:清空   提交订单
清空按钮代码:

        Session.Remove("shoppingcart");
        GridView1.DataBind();
        Label2.Text = "总计:0元";
提交订单:这里是提交给数据库,建一个订单表。
事件代码:
        string name = Session["sa"].ToString();//获得提交用户的用户名
        double sum = 0.0;
        string p1="";
        string p2="";
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
         sum = sum + (double.Parse(GridView1.Rows.Cells[2].Text));
          p1 =p1+"、" + GridView1.Rows.Cells[0].Text;
          p2 =p2 +"、"+ GridView1.Rows.Cells[1].Text;
           }
        
        DataClasses3DataContext w = new DataClasses3DataContext();
        dingdan dan = new dingdan();
        dan.username = name;
        dan.dingdan1= p1+p2;
        dan.price = sum.ToString();
        dan.addtime = Convert.ToDateTime(DateTime.Now);
        w.dingdans.InsertOnSubmit(dan);
        w.SubmitChanges();
效果图:
.net c购物车模块分析 - lfqhome@126 - 如影随行

.net c购物车模块分析 - lfqhome@126 - 如影随行

点击清空:.net c购物车模块分析 - lfqhome@126 - 如影随行

提交订单后,订单查看:
.net c购物车模块分析 - lfqhome@126 - 如影随行

  • 8
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值