存储过程返回值

存储过程返回值:

下面的类是.net提供的存储过程的参数的枚举类型

namespace System.Data

{

    // 摘要:

    //     指定查询内的有关 System.Data.DataSet 的参数的类型。

    public enum ParameterDirection

    {

        // 摘要:

        //     参数是输入参数。

        Input = 1,

        //

        // 摘要:

        //     参数是输出参数。

        Output = 2,

        //

        // 摘要:

        //     参数既能输入,也能输出。

        InputOutput = 3,

        //

        // 摘要:

        //     参数表示诸如存储过程、内置函数或用户定义函数之类的操作的返回值。

        ReturnValue = 6,

    }

}

应用实例:

拿最通用的用户登陆验证的例子来讲:

1、如果在.net程序中写入代码如下

    /// <summary>

    /// 检测用户名及密码是否正确(mocklystone 2009-0-10-14)

    /// </summary>

    /// <param name="userName"></param>

    /// <param name="userPwd"></param>

    /// <returns></returns>

    public static bool IsCheckPass(string userName,string userPwd)

    {

        SqlConnection conn = new SqlConnection(sqlConn);

        try

        {

            

            conn.Open();

            SqlCommand cmd = new SqlCommand("proc_UserInfo_CheckUser", conn);

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add("@UserName"SqlDbType.NVarChar, 50);

            cmd.Parameters["@UserName"].Value = userName;

            cmd.Parameters.Add("@UserPwd"SqlDbType.NVarChar, 50);

            cmd.Parameters["@UserPwd"].Value = userPwd;

            // 注意:这边是关键点,给存储过程添加一个参数为@cnt,类型为ParameterDirection中的ReturnValue

            // 那么数据库中对应的存储过程应如下述的第1点所写的

            // 如果类型为ParameterDirection中的Output,存储过程应如下述的第2点所写的。

            cmd.Parameters.Add("@cnt"SqlDbType.Int);

            cmd.Parameters["@cnt"].Direction = ParameterDirection.ReturnValue;

            cmd.ExecuteNonQuery();

            int cnt = int.Parse(cmd.Parameters["@cnt"].Value.ToString());

            if (cnt > 0)

                return true;

            else

                return false;

        }

        catch

        {

            return false;

        }

        finally

        {

            conn.Close();

        }

        

    }

存储过程1

--=====================================================--

--Author:   mocklystone

--CreateDate: 2010-01-02

--description: 用于验证用户是否存在

--UpdateRecord: 

--=====================================================--

ALTER procedure [dbo].[proc_UserInfo_CheckUser]

@UserName varchar(20),

@UserPwd varchar(20)

as

if exists(select * from UserInfo where UserName=@UserName and UserPwd=@UserPwd)

return 1

else

return 0

存储过程2

--=====================================================--

--Author:   mocklystone

--CreateDate: 2010-01-02

--description: 用于验证用户是否存在

--UpdateRecord: 

--=====================================================--

ALTER procedure [dbo].[proc_UserInfo_CheckUser]

@UserName varchar(20),

@UserPwd varchar(20),

@Cnt int output

as

if exists(select * from UserInfo where UserName=@UserName and UserPwd=@UserPwd)

set @Cnt=1

else

set @Cnt=0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值