日期:2014-05-18  浏览次数:20399 次

存储过程的问题,大家帮忙~!! 存储过程。
我要做一个购物车的程序,其中   @CID   传递的是当前浏览的用户;   @PID是当前用户正在浏览的货物号。

表   tosell   代表正在销售中的物品,其中PK   是   PID   ,外键   有   CID   (customer表中主键)

先检测   当前正在浏览的用户   @CID     是不是与     tosell   中的   CID   一样,如果一样,就不能把自己的物品放入购物车....后面的就不用说了吧   ,可是,为什么我得不到  
@flag=2的情况,就算是自己买自己的东西。       帮忙。。。。。


CREATE   PROCEDURE   Select_Insert_Cart_Proc
@CID   int,
@PID   int
AS
declare   @flag   int
declare   @tempID   int
set   @flag=0
select   top   1   @tempID   =   CID   from   tosell   where   PID=@CID

if   @CID   =   @tempID
begin
set   @flag=2
end

else
begin

if   not   exists(   select   *   from   cart   where   CID=@CID   and   PID=@PID)
begin
set   @flag=1
insert   into   cart   (CID,PID)   values   (@CID,@PID)
end
else
begin
set   @flag=-1
end
end

return   @flag
GO


@flag=2   代表 自己在企图买自己的东西 (不允许放入购物车)
@flag=1   代表 自己在买别人的东西,并且自己的购物车中没有这种东西 (放入购物车)
@flag=-1代表 自己在买别人的东西,但自己的购物车中已经有了这种东西 (重复放入购物车,不允许)

下面是调用存储过程的代码,看看对吗》帮忙
protected   void   Button1_Click(object   sender,   EventArgs   e)
        {
                if   (Session[ "CID "]   ==   null   ||   Session[ "CID "]   ==   " ")
                {
                        ShowMessage( "Please   Login.... ");
                        Response.Write( " <script> this.location.href= 'Default.aspx '; </script> ");
                        return;
                }
                string   cid   =   Session[ "CID "].ToString();

                using   (SqlConnection   Con   =   new   SqlConnection(ConfigurationManager.ConnectionStrings[ "SQLCONNECTIONSTRING "].ConnectionString))
                {
                        SqlCommand   Cmd   =   new   SqlCommand( "Select_Insert_Cart_Proc ",   Con);
                        Cmd.Connection.Open();
                        Cmd.CommandType   =   CommandType.StoredProcedure;

                        int   flag   =   0;

                        SqlParameter   CID   =   Cmd.Parameters.Add( "@CID ",   SqlDbType.Int);
                      &nbs