最近使用asp.net+sql2000开始开发一个小型商城系统,其中涉及到得购物车功能主要是仿照淘宝实现的,即以游客身份登录网站时以cookie的方式存储购物车,而以登录用户的身份进入时将购物车信息存储到数据库中去,若是先以游客身份完成购物再登录继续购物,则将cookies购物车存入数据库;

     其中涉及到的存储过程主要如下:

   一:已登录会员添加商品到购物车功能:

/* @store_sum表示要添加的商品数量,添加同时确认购物车中自己已有的数量与将要加入的数量之和是否超过库存   */

CREATE proc ncp_Cart_Add
(
@store_id int,
@store_sum int=1,
@member_id int
)
as


   DECLARE @Amount  int
   DECLARE @NowAmount  int
   Begin
   select @Amount=(select amount from ncp_store where id=@store_id)
  
   IF EXISTS(SELECT 1 FROM [ncp_cart] WHERE store_id=@store_id and member_id=@member_id)
          Begin
           select  @NowAmount=(select store_sum+@store_sum from ncp_cart WHERE store_id=@store_id and member_id=@member_id)
           if @NowAmount>@Amount
              return 0
          else
            UPDATE [ncp_cart] SET store_sum=store_sum+@store_sum,addtime=getDate() where store_id=@store_id and member_id=@member_id
             return 1
        End
   ELSE
           Begin
           select  @NowAmount=(select store_sum from ncp_cart WHERE store_id=@store_id and member_id=@member_id)
           if @NowAmount>@Amount
              return 0
          else
            INSERT INTO [ncp_cart](store_id,store_sum,member_id) values(@store_id,@store_sum,@member_id)
              return 1
           END
   End
GO

二:购物车的删除功能

 

/* type 为1是全部删  0时只删一个 */
CREATE PROCEDURE ncp_Cart_Del
@type int=0,
@store_id int ,
@member_id int
 AS
begin
   if @type=0
      delete from [ncp_cart] where store_id=@store_id and member_id=@member_id
  else
     delete from [ncp_cart] where  member_id=@member_id

End
GO

 

第一次发帖,希望园子里各位老师批评指正。

 

 

posted on 2009-12-14 20:26  张学友  阅读(644)  评论(1编辑  收藏  举报