100分救急cookie购物车有关问题
100分救急啊!!cookie购物车问题
当A用户在自己电脑上访问此购物网站,将商品添加到购物车中后,没提交订单,也没清空购物车,此时B用户也用自己电脑访问此购物网站,也将商品添加到购物车中 ,但是此时B的购物车中有A用户购物车的商品,这是怎么回事啊?貌似购物车是公用的?求解,下面贴代码
当A用户在自己电脑上访问此购物网站,将商品添加到购物车中后,没提交订单,也没清空购物车,此时B用户也用自己电脑访问此购物网站,也将商品添加到购物车中 ,但是此时B的购物车中有A用户购物车的商品,这是怎么回事啊?貌似购物车是公用的?求解,下面贴代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Web;
using bldxw.DAL;
namespace bldxw.BLL
{
public class ShopCar
{
public static DataTable dt;
/// <summary>
/// 创建虚拟表
/// </summary>
protected void BuildDataTables()
{
dt = new DataTable("Product");//新建一张商品表,表名为"Product"
dt.Columns.Add(new DataColumn("ProductID")); //商品编号
dt.Columns.Add(new DataColumn("GoodsImageUrl"));//商品图片
dt.Columns.Add(new DataColumn("ProductName")); //商品名称
dt.Columns.Add(new DataColumn("Size")); //商品尺码
dt.Columns.Add(new DataColumn("quantity")); //购买数量
dt.Columns.Add(new DataColumn("totalPrice")); //商品总价
dt.Columns.Add(new DataColumn("Price")); //商品单价
dt.PrimaryKey = new DataColumn[] { dt.Columns["ProductID"] }; //设置主键为ProductID
}
/// <summary>
/// 查询购物车中的商品
/// </summary>
public DataTable GetProduct()
{
//判断cookie中是否存在数据
if (HttpContext.Current.Request.Cookies["ShoppingCart"].Value=="")
{
if (dt == null)
{
//如果虚拟表不存在则创建一个空的虚拟表
BuildDataTables();
}
}
else
{
//如果cookie中存在数据则从cookie中加载数据到购物车
ReadCookie();
}
return dt;
}
/// <summary>
/// 往虚拟表中添加数据
/// </summary>
/// <param name="ProductID">商品编号</param>
/// <param name="Quantity">购买数量</param>
public void AddDatatable(int ProductID, int Quantity, string Size)
{
//按照产品编号查询所有产品信息
DBHelp db = new DBHelp();
DataTable dtt = db.OpenDT("select chanpin.chanpinName,chanpin.jiage ,image.img17,pinpai.pinpaiName,dalei.daleiName,xiaolei.xiaoleiName from chanpin,dalei,xiaolei,pinpai,image where(chanpin.pinpaiID=pinpai.pinpaiID and chanpin.daleiID=dalei.daleiID and chanpin.xiaoleiID=xiaolei.xiaoleiID and chanpin.imgID=image.imgID)and chanpin.chanpinID='" + ProductID + "'");
// product prod = new ProductInfo().GetProductByProductId(ProductID)[0];
//新建一行数据
DataRow dr = dt.NewRow();
dr["ProductID"] = ProductID;
dr["GoodsImageUrl"] = dtt.Rows[0]["img17"];