asp.net购物车功能(帮我解决再追加100)

在做购物车模块的时候,出现了附图的问题.由点击添加到购物车后,进入AddToCart.aspx窗体,它主要完成获取购物车编号,并把购物信息添加到购物车中.完成后直接跳转到ShppingCart窗体(购物车页面). protected void Page_Load(object sender, EventArgs e) { if (Request.Params["GoodID"] != null) { GoodStore cart = new GoodStore(); String CartID = cart.GetShoppingCartID(); cart.AddItemToShoppingCart(CartID, Int32.Parse(Request.Params["GoodID"]), 1); } Response.Redirect("ShoppingCart.aspx"); }public String GetShoppingCartID() { //获取当前请求的HttpContext System.Web.HttpContext thecontext = System.Web.HttpContext.Current; //如果用户已经通过登录认证,则使用该用户的UserID作为永久的购物车ID,并返回该ID if (thecontext.User.Identity.Name != "") { return thecontext.User.Identity.Name; } //如果用户尚未通过认证,则分两种情况进行处理 if (thecontext.Request.Cookies["Store_CartID"] != null) { return thecontext.Request.Cookies["Store_CartID"].Value; } else { //产生一个随机的GUID Guid tempShoppingCartID = Guid.NewGuid(); //把tempShoppingCartID发送到客户端,并作为一个COOKIE保存下来 thecontext.Response.Cookies["Store_CartID"].Value = tempShoppingCartID.ToString(); //函数返回这个tempCartID return tempShoppingCartID.ToString(); } }AddItemToShoppingCart()函数可以看下附图.AddItemToShoppingCart的存储过程如下:CREATE PROCEDURE AddItemToShoppingCart(@CartIDString nvarchar(50),@GoodID int,@GoodQuantity int) ASdeclare @CountItems int Select @CountItems=Count(GoodID)FROMShopCartwhere GoodID=@GoodIDANDCartIDString =@CartIDStringif @CountItems>0updateShopCartset GoodQuantity=(@GoodQuantity+ShopCart.GoodQuantity)where GoodID=@GoodIDANDCartIDString =@CartIDStringelseinsert into ShopCart(CartIDString,GoodQuantity,GoodID)VALUES(@CartIDString,@GoodQuantity,@GoodID)GO------------------------------------------------------出错的提示说CartID为空,没有插入CartID,可是GetShoppingCartID这个函数不就是实现获取CartID,并存储的功能吗?请高手们帮我看看要怎么解决.谢谢.
2026年09月23日 13:50
有5个网友回答
网友(1):

if (thecontext.User.Identity.Name != "")

假如thecontext.User.Identity.Name == null 的话,等式是成立的。应该改成:
String.isNullOrEmpty (thecontext.User.Identity.Name) ;

基本上其他的地方也应当判断一下输入参数,这样有助于调试。

网友(2):

//产生一个随机的GUID
Guid tempShoppingCartID = Guid.NewGuid();
//把tempShoppingCartID发送到客户端,并作为一个COOKIE保存下来
thecontext.Response.Cookies["Store_CartID"].Value =
tempShoppingCartID.ToString();
//函数返回这个tempCartID
return tempShoppingCartID.ToString();

如果在用户未登录下,你看看是不是这写错了,你没有设置Cookie生命周期.

网友(3):

insert into ShopCart
(
CartIDString,
GoodQuantity,
GoodID
)
VALUES
(
@CartIDString,
@GoodQuantity,
@GoodID
)
1.你的存储过程中没有对CartID列存入数据啊
2.GetShoppingCartID这个函数获取的值你不是存入了CartIDString这一列吗?
=====================================
你是不是把CartIDString和CartID高混淆了?

网友(4):

CartID自增标识

网友(5):

无语 你不会断点进去看一下 就什么都知道了....