我已经在SQLHelper中添加了ReturnValue参数            this.cmd.Parameters.Add(new SqlParameter("ReturnValue",
                SqlDbType.Int, 4, ParameterDirection.ReturnValue, false,
                0, 0, string.Empty, DataRowVersion.Default, null));            //打开连接
            OpenConn();
            //加入返回参数
            cmd = CreatParamCommand(storedProcedureString);
            //尝试执行命令
            try
            {
                cmd.ExecuteScalar();
            }
            catch (System.Exception ec)
            {
                throw new Exception(ec.Message, ec);
            }
            //关闭连接
            CloseConn();
            //返回值
            return (int)cmd.Parameters["ReturnValue"].Value;
存储过程是这样写的:  ALTER PROCEDURE dbo.UserLogin
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
@user varchar,
@password varchar
AS
/* SET NOCOUNT ON */
select count(*)
from [tb_User]
where [UserName] =@user AND [PassWord]=@password RETURN
为什么返回是结果是0呢?
怎样才能返回1呢?

解决方案 »

  1.   

    declare @c int
    select @c=count(*)
    from [tb_User]
    where [UserName] =@user AND [PassWord]=@password
    return @c
      

  2.   


    AS
        /* SET NOCOUNT ON */
        select count(*)
        from [tb_User]
        where [UserName] =@user AND [PassWord]=@password    RETURN你没有返回1,当然是0了,你这样试试?sql我也不熟悉:_)AS
        /* SET NOCOUNT ON */
    RETURN
        
    select count(*)
        from [tb_User]
        where [UserName] =@user AND [PassWord]=@password