一个简单的购物车

private void ShopCar(int id,string name,double price,int numble,int tag)   //tag等于1为增加商品,0为减
  {
    System.Data.DataTable dt;
   if(HttpContext.Current.Session["shop_car"]==null)
   {
    dt=new DataTable();
    dt.Columns.Add(new DataColumn("编号",typeof(int)));
    dt.Columns.Add(new DataColumn("商品名",typeof(string)));
    dt.Columns.Add(new DataColumn("价格",typeof(double)));
    dt.Columns.Add(new DataColumn("数量",typeof(int)));
    dt.Columns.Add(new DataColumn("总计",typeof(double)));
    Session["shop_car"]=dt;      //缓存数据表,不能缓存视图
   }
   else
   { 
    dt=(DataTable)Session["shop_car"];
   }
    DataView dv=dt.DefaultView;
    dv.Sort="编号";   //排序
    int i=dv.Find(id);    //在车中搜索商店id,如果不存在返回-1
    if(i==-1)    //无此商店
    {
     if(tag==1)  //添加
     {
      DataRow dr=dt.NewRow();
      dr["编号"]=id;
      dr["商品名"]=name;
      dr["价格"]=price;
      dr["数量"]=numble;
      dr["总计"]=numble * price;
      dt.Rows.Add(dr);
     }
     else   //移除
     {
      Response.Write("<script language='javascript'>alert('此商品已清空!');</script>");
     }
    }
    else  //有此商品
    {
     if(tag==1)  //添加
     {
      dv[i]["数量"]=(int)dv[i]["数量"]+numble;
      dv[i]["总计"]=(double)dv[i]["总计"]+(double)dv[i]["价格"]*numble;
      dv.Sort=null;
     }
     else   //移除
     {
      int j=(int)dv[i]["数量"]-numble;
      if(j<=0) dv.Delete(i);
      else
      {
       dv[i]["数量"]=j;
       dv[i]["总计"]=(double)dv[i]["总计"]-(double)dv[i]["价格"]*numble;
      }
      dv.Sort=null;
     }
    }
    }

//然后在其它页面调用session与DataGrid绑定,可能得初始化DataTable
原文地址:https://www.cnblogs.com/zjz/p/209325.html