获取存储过程中OutPut输出参数的值和ReturnValue的值

文章转载:获取存储过程中OutPut输出参数的值和ReturnValue的值

 

 

本次程序中,需要用到ReturnValue或者Output来获取sqlserver存储过程返回参数的值,于是整理出来,存储过程中OutPut输出参数的值和ReturnValue的值的获取可以参考。

首先让我们来了解下其中几个参数的意思:

Input此参数只用于将信息从应用程序传输到存储过程。
InputOutput此参数可将信息从应用程序传输到存储过程,并将信息从存储过程传输回应用程序。
Output此参数只用于将信息从存储过程传输回应用程序。
ReturnValue此参数表示存储过程的返回值。SQL Server 的存储过程参数列表中不显示该参数。它只与存储过程的 RETURN 语句中的值相关联。

存储过程为主键生成新值后,通常使用存储过程中的 RETURN 语句返回该值,因此用来访问该值的参数类型是 ReturnValue 参数。OutPut是一个输出参数类型,首先我们要明白OutPut类型的参数与Return值不一样。我们将存储过程中的某一个或多个参数提定为 OutPut类型,然后在存储过程内部更新这些参数,再在存储过程外部获取这些参数值就可以了。这有点类似于C#中的ref,out类型的参数。

  ReturnValue 参数与其他类型的参数有一个重要的区别。通常,在 ADO.NET 中为 Command 对象配置的参数的顺序并不重要。参数名称只用来与存储过程中相应的参数相匹配。但是,对于 ReturnValue 参数,它必须是列表中的第一个参数。

  也就是说,为 Command 对象配置 ReturnValue 参数时,必须首先在代码中配置该参数,这样它才能获取集合中的第一个数字索引。如果先配置任何其他参数,ReturnValue 参数将不能正常工作。

1
2
3
args[0] =  new  SqlParameter( "@RETURN_VALUE" , SqlDbType.Int );
args[0].Direction = ParameterDirection.ReturnValue;
args[0].Value.ToString() ; 取回值的时候用

一、在sql中获取存储过程中OutPut输出参数值

创建一个测试的存储过程:

1
2
3
4
5
6
create  procedure  sp_test
@ID  int  output ,
@ Name  varchar (50)  output
as
set  @ID=1000
set  @ Name = 'KKBlog asp.net技术开发'

二、在C#中获取存储过程中OutPut输出参数值

1
2
3
4
5
6
7
8
9
10
11
12
public  static  void  PagiNation()
{
SqlParameter[] parameters =  new  SqlParameter[2];
parameters[0] =  new  SqlParameter( "@ID" , SqlDbType.Int, 4);
parameters[0].Direction = ParameterDirection.Output;
parameters[1] =  new  SqlParameter( "@Name" , SqlDbType.VarChar, 50);
parameters[1].Direction = ParameterDirection.Output;
/*
执行存储过程,代码略
执行完成后parameters[0].Value就等于1000,parameters[1].Value就等于"KKBlog asp.net技术开发"了。
*/
}

 

转载于:https://www.cnblogs.com/jianfangkk/articles/4984186.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值