create procedure [CzInfoUser]
@CardNum varchar(50),
@CardPass varchar(50),
@UserID varchar(50)
asdeclare @count int,@return int,@Point intbegin
select @count=Count(*), @Point=Sum(PCAmount)  from PointCard where PCID=@CardNum and PCPass=@CardPass  
if(@count<1)
--卡号或者密码错误
select @return=-1
else 
begin 
select @count=Count(*) from PointCard where PCID=@CardNum and PCPass=@CardPass and PCPeriod >getdate() and PCbit=1
if(@count<1)
--此卡无效
select @return=-2
elsebegininsert into CzInfo(UserID,CardID,CzPoint,CzDate) values(@UserID,@CardNum,@Point,getDate())
if(@@error>0)
--插入充值记录时失败,请联系管理员
select @return=-3
elsebeginupdate PointCard set PCBit=0 where PCID=@CardNum
if(@@error>0)
--更新此卡变为无效时失败,请联系管理员
select @return=-4
else
begin update u_info_t set CardCount=(CardCount+@Point) where username=@UserID
if(@@error>0)
--更新此用户的点数失败,请联系管理员
select @return=-5
else
select @return=1
end
end
end
end
end
return @returnGO

解决方案 »

  1.   

    cmd.Parameters[i].Direction == ParameterDirection.Output
      

  2.   

    在。net里面调用存储过程是,可以声明一个参数是ParameterDirection.ReturnValue类型即可
    代码如下:
      cmd.Parameters.Add(new SqlParameter("@Result", SqlDbType.Int));
     cmd.Parameters["@Result"].Direction = ParameterDirection.ReturnValue;
      

  3.   

    create procedure [CzInfoUser]
    @CardNum varchar(50),
    @CardPass varchar(50),
    @UserID varchar(50)
    asdeclare @count int,@return int,@Point intbegin
    select @count=Count(*), @Point=Sum(PCAmount) from PointCard where PCID=@CardNum and PCPass=@CardPass   
    if(@count<1)
    --卡号或者密码错误
    select @return=-1
    else  
    begin  
    select @count=Count(*) from PointCard where PCID=@CardNum and PCPass=@CardPass and PCPeriod >getdate() and PCbit=1
    if(@count<1)
    --此卡无效
    select @return=-2
    elsebegininsert into CzInfo(UserID,CardID,CzPoint,CzDate) values(@UserID,@CardNum,@Point,getDate())
    if(@@error>0)
    --插入充值记录时失败,请联系管理员
    select @return=-3
    elsebeginupdate PointCard set PCBit=0 where PCID=@CardNum
    if(@@error>0)
    --更新此卡变为无效时失败,请联系管理员
    select @return=-4
    else
    begin  update u_info_t set CardCount=(CardCount+@Point) where username=@UserID
    if(@@error>0)
    --更新此用户的点数失败,请联系管理员
    select @return=-5
    else
    select @return=1
    end
    end
    end
    end
    end
    return @returnGO
    先看看
      

  4.   


    //Create PROCEDURE Get
    //     @a int,
    //     @b int
    //AS
    //     return @a + @b
    //GO
    using(SqlConnection conn = new SqlConnection("")
    {
    conn.Open();
    SqlCommand MyCommand = new SqlCommand("Get", conn);
    MyCommand.CommandType = CommandType.StoredProcedure;
    MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
    MyCommand.Parameters["@a"].Value = 10;
    MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
    MyCommand.Parameters["@b"].Value = 20;
    MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
    MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
    MyCommand.ExecuteNonQuery();
    Response.Write(MyCommand.Parameters["@return"].Value.ToString());
    }