我要做一个购物车的程序,其中 @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);
SqlParameter PID = Cmd.Parameters.Add( "@PID ", SqlDbType.Int);