• 存储过程返回值及输出参数笔记


          在项目中写了一个存储过程:    

    Create PROCEDURE [dbo].[****] @ParkingAddress nvarchar(50) AS
    BEGIN
    insert into table(ParkingAddress)
    values(@ParkingAddress)
    END
    if(@@rowcount>0)
    return 1
    else
    return 0
         在程序中我需要调用这个存储过程并且得到它的返回值。因此需要获取该存储过程的返回值。在程序中我通过SqlCommand中的ExecuteNonQuery方法调用成功后,一时不知道怎么得到它的返回值。(没有用output输出参数),故查了些资料得到了解决方案,下面是一些记录,这里整理在一起,便于以后查找方便。

         要点:output是在存储过程中的参数的返回值(输出参数),而ReturnValue是存储过程返回的值(使用return关键字),一个存储过程可以有任意多个依靠参数返回的值,但只有一个ReturnValue。

    一、获取存储过程的返回值--通过查询分析器获得
         存储过程大体分成三类:

    1、返回记录集的存储过程:执行结果是一个记录集,例如,从数据库中检索出符合某一个或几个条件的记录。

    2、返回数值得的存储过程(也可称为标量存储过程),其执行完后返回一个值,例如数据库中执行一个有返回值的函数或命令。

    3、行为存储过程,用来实现数据库的某个功能,而没有返回值,例如在数据库中的更新和删除操作。

    另外:含有return的存储过程其返回值为return返回的那个值。

    没有return的存储过程,无论执行结果又无结果集,其返回值都是0,

    带有输出参数的存储过程,如果有RETURN则返回RETURN返回的那个值,如果要SELECT输出参数,则出现输出参数的值,和有无RETURN无关。

    二、获取存储过程的返回值--通过程序获得

    SqlParameter[] cmdParms = { .. ,new SqlParameter("@return",SqlDbType.Int)};
    cmdParms[cmdParms.Length - 1].Direction = ParameterDirection.ReturnValue;或者
    cmdParms[cmdParms.Length - 1].Direction = ParameterDirection.Output或者
    cmdParms[cmdParms.Length - 1].Direction = ParameterDirection.Input;

    得到返回值 object obj = cmdParms[cmdParms.Length - 1].Value;

    根据上面的思路,最后在项目中通过 

                SqlParameter p = new SqlParameter("@ReturnValue", SqlDbType.Int);//这里的@ReturnValue可以根据需要自己命名,如果不命名系统将提供默认的一个名称。
                p.Direction = ParameterDirection.ReturnValue;

                SqlCommand.Parameters.Add(P);

                SqlCommand.ExecuteNonQuery();

                object obj=SqlCommand.Parameters["ReturnValue"].Value;

     就这样程序就得到存储过程中的返回值。

    问题解决!

               


  • 相关阅读:
    在美国,一名 Uber 司机能赚多少?
    多名Uber司机被指刷单遭封号 一周薪水为0
    腾讯内推【腾讯工作机会内推】【腾讯社招内推】(长期有效)
    优步uber司机怎么注册不了?注册优步司机问题要点
    如何注册成为uber司机 快速成为优步司机网上注册流程攻略 2015最新
    Google AdSense的CPC点击单价超百度联盟(2014)
    非流动资产(财务报表解读)
    资产负债率
    流动资产(财务报表解读)
    UBER人民优步司机注册攻略
  • 原文地址:https://www.cnblogs.com/Charles2008/p/StoreProc_ReturnValue.html
Copyright © 2020-2023  润新知