一个ASP.net购物车的代码程序.

这是一个ASP.net购物车的代码程序.
    using system;
    using system.Data;
    using system.Configuration;
    using system.Collections;
    using system.Web;
    using system.Web.Security;
    using system.Web.UI;
    using system.Web.UI.WebControls;
    using system.Web.UI.WebControls.WebParts;
    using system.Web.UI.HtmlControls; 
    public partial class cart : system.Web.UI.Page
    {
        public MyDb dd = new MyDb();
        public string AddProID;
        protected string RefreshID;
      //  public string total;
        protected void Page_Load(object sender, EventArgs e)
        {
                if (!Page.IsPostBack)
                {
                    //if (RefreshID == "")
                    //{
                    //    RefreshID =System.DateTime.Now.Ticks.ToString();
                    //}
                    if (Request.Params["mode"] == "view")         //检测是否为直接查看购物车。
                    {
                        ViewShoppingCart();
                        Caculator();
                    }
                    if (Request.Params["productID"] != null || Request.Params["productID"] != "")
                    {
                        this.rnd.Text = Request["item"];
                        AddProID = Request["productID"];
                        UpdateShoppingCart();

     Caculator();
                    }
                }
        }

 public void CreateCartTable()   //创建购物车
        {
            DataSet ds = new DataSet();
            DataTable newDT = new DataTable("CartTable");
            ds.Tables.Add(newDT);
            DataColumn newDC;
            newDC = new DataColumn("ProductID", system.Type.GetType("System.Int32"));
            ds.Tables["CartTable"].Columns.Add(newDC);
            newDC = new DataColumn("Name", system.Type.GetType("System.String"));
            newDC.DefaultValue = 1;
            ds.Tables["CartTable"].Columns.Add(newDC);
            newDC = new DataColumn("max", system.Type.GetType("System.String"));
            ds.Tables["CartTable"].Columns.Add(newDC);
            newDC = new DataColumn("Unit", system.Type.GetType("System.String"));
            ds.Tables["CartTable"].Columns.Add(newDC);
            newDC = new DataColumn("SellPrice", system.Type.GetType("System.Int32"));
            ds.Tables["CartTable"].Columns.Add(newDC);
            newDC = new DataColumn("IsDeleted", system.Type.GetType("System.Int32"));
            newDC.DefaultValue = 0;
            ds.Tables["CartTable"].Columns.Add(newDC);
            Session["myCartTable"] = newDT;
            ShoppingCartDlt.DataSource = ds.Tables["CartTable"].DefaultView;
            ShoppingCartDlt.DataBind();
        }
        public void UpdateShoppingCart()
        {
            if (Session["myCartTable"] == null)//Session["myCartTable"]==null
            {
                CreateCartTable();                                    //调用函数CreateCartTable()新建一个DataTable
                WriteShoppingCart();
            }
            else
            {                                                         //如果购物蓝中已有商品,则需要对购物信息表DataTable进行更新,并将其棒定到                                                                             ShoppingCartDlt
                WriteShoppingCart();
            }
        }
        public void ViewShoppingCart()                               //查看购物车
        {
            if (Session["myCartTable"] != null)
            {
                DataTable viewTable = new DataTable("nowCartTable");
                viewTable = (DataTable)Session["myCartTable"];
                ShoppingCartDlt.DataSource = viewTable.DefaultView;         //购物车棒定到ShoppingCartDlt
                ShoppingCartDlt.DataBind();
     }
     }

public void WriteShoppingCart()
        {
            if (Request.Params["mode"] != "view")                             //检查是否是直接查看购物车,如果直接查看,就不再写MYCARTTABLE
            {
                DataTable nowTable = new DataTable("nowCartTable");
                nowTable = (DataTable)Session["myCartTable"];
                int pn = nowTable.Rows.Count; 

                int i = 0;
                bool hasone = false;
                int nowProdID;
                while (i < pn && !hasone)
                {
                    nowProdID = Int32.Parse(nowTable.Rows[i][0].ToString());
                    if (nowProdID == Int32.Parse(AddProID))                //判断购物信息表中,是否存有当前放入商品。 
      if(nowProdID==Int32.Parse(AddProID))
                    {
                        hasone = true;
                    }
                    else
                    {
                        i++;
                    }
     }
                if (hasone)
                {
                    //如果已有该商品,则 hasone=true,更改该数据行
                     string sesToken = RefreshID;
                     //if (sesToken == "")
                     //{
                         DataRow oldDR;
                         oldDR = nowTable.Rows[i];
                         oldDR["max"] = Int32.Parse(oldDR["max"].ToString()) + 1;
                }
                else
                {
                    //如果没有该商品,在表中新加如一行。
                    DataRow newDR;
                    double unitp;
                    string strSQL = "select *  from Product where ProductID=" + AddProID + " and Productrnd="+this.rnd.Text+"";
                    dd.cmd.CommandText = strSQL;
                    DataSet ds = new DataSet();
                   // myCommand.Fill(ds, "AddP");
                    dd.Adp.SelectCommand = dd.cmd;
      dd.Adp.Fill(ds, "Addp");
                    newDR = nowTable.NewRow();
                    newDR[0] = AddProID;
                    newDR[1] = ds.Tables["Addp"].Rows[0]["Name"].ToString();
                    unitp = Double.Parse(ds.Tables["AddP"].Rows[0]["SellPrice"].ToString());        //会员价
                    newDR[2] = ds.Tables["Addp"].Rows[0]["max"].ToString();
                    newDR[3] = ds.Tables["Addp"].Rows[0]["Unit"].ToString();
                    newDR[4] = ds.Tables["Addp"].Rows[0]["SellPrice"].ToString();        //第一次读库,所以总价格和单价是一样的。
                    //newDR[5]="0";
                    nowTable.Rows.Add(newDR);
                   dd.conn.Close();

                }
                ShoppingCartDlt.DataSource = nowTable.DefaultView;         //将更新后的 DataTable棒定到ShoppingCartDlt
                ShoppingCartDlt.DataBind();
                Session["myCartTable"] = nowTable;
                //重新保存更新过的DataTable
            }
        }

public void Caculator()
        {
            if (Session["myCartTable"] != null)                         //购物车是否为空

     {
             int h;
                DataTable nowTable3 = new DataTable("nowCartTable3");
                nowTable3 = (DataTable)Session["myCartTable"];
                if (nowTable3.Rows.Count > 0)                               //返回购物车中是否有货物
                {
                    int total = 0; ;
                    for (h = 0; h <= this.ShoppingCartDlt.Rows.Count-1; h++)
                    {
                        total += Convert.ToInt32((Int32.Parse(nowTable3.Rows[h][4].ToString()) * Double.Parse(nowTable3.Rows[h][2].ToString()))); 
                    }
                    ((Label)ShoppingCartDlt.FooterRow.FindControl("total")).Text = Convert.ToString(total);
                    OrderFrom.Money = ((Label)ShoppingCartDlt.FooterRow.FindControl("total")).Text;
                }
            }
        }
        public void Update()
        {

            int i;
            int j;
            ArrayList deleteItem = new ArrayList(10);
            j = 0;

    DataTable nowTable2 = new DataTable("nowCartTable2");
            nowTable2 = (DataTable)Session["myCartTable"];
            int total = 0;
            int ProductNum = 0;
            for (i = 0; i <= this.ShoppingCartDlt.Rows.Count-1; i++)
            {
                // _item = this.ShoppingCartDlt.Items[i];
               // _item = this.ShoppingCartDlt.Items[i];
                TextBox CountText = (TextBox)this.ShoppingCartDlt.Rows[i].FindControl("max");//Controls[1];//_item.FindControl("CountTb");
                CheckBox ProductIDCheck = (CheckBox)this.ShoppingCartDlt.Rows[i].FindControl("chkProductID");

                total +=Convert.ToInt32((Int32.Parse(nowTable2.Rows[i][4].ToString()) * Double.Parse(nowTable2.Rows[i][2].ToString())));
                ProductNum += Convert.ToInt32(Int32.Parse(nowTable2.Rows[i][2].ToString()));
                if (ProductIDCheck.Checked)
                {
                    nowTable2.Rows[i][5] = 1;//添加删除标记1
                    j = j + 1;
                }
            }
            ((Label)ShoppingCartDlt.FooterRow.FindControl("total")).Text = Convert.ToString(total);
            OrderFrom.Money = ((Label)ShoppingCartDlt.FooterRow.FindControl("total")).Text;
            OrderFrom.TotolNumber=ProductNum.ToString();
            string strExpr = "IsDeleted>0";
            DataRow[] foundRows = nowTable2.Select(strExpr);

    for (int m = 0; m < foundRows.Length; m++)
            {
                //Console.WriteLine(foundRows[i][0]);
                foundRows[m].Delete();
            }
            ShoppingCartDlt.DataSource = nowTable2.DefaultView;
            ShoppingCartDlt.DataBind();
            Session["myCartTable"] = nowTable2;
            Caculator();
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Redirect("index.aspx");
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
           Update();
        }
        protected void Button5_Click(object sender, EventArgs e)
        {
            Update();
            Response.Redirect("checkout.aspx");
        }
    }

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值