如何获取存储过程返回值
类别:数据库 浏览量:5308
时间:2014-5-6 如何获取存储过程返回值
如何获取存储过程返回值
一、Sql Server存储过程反回值应用举例
1、OUPUT参数返回值
CREATE PROCEDURE [dbo].[nb_order_insert](
@o_buyerid int ,
@o_id bigint OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
BEGIN
INSERT INTO [Order](o_buyerid )
VALUES (@o_buyerid )
SET @o_id = @@IDENTITY
END
END
调用示例
DECLARE @o_buyerid int
DECLARE @o_id bigint
EXEC [nb_order_insert] @o_buyerid,@o_id output
2、RETURN过程返回值
CREATE PROCEDURE [dbo].[nb_order_insert](
@o_buyerid int ,
@o_id bigint OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
IF(EXISTS(SELECT * FROM [Shop] WHERE [s_id] = @o_buyerid ))
BEGIN
INSERT INTO [Order](o_buyerid ) VALUES (@o_buyerid )
SET @o_id = @@IDENTITY
RETURN 1 — 插入成功返回1
END
ELSE
RETURN 0 — 插入失败返回0 END
调用示例
DECLARE @o_buyerid int
DECLARE @o_id bigint
DECLARE @result bit
EXEC @result = [nb_order_insert] @o_buyerid ,o_id output
二、C#获取存储过程返回值
存储过程
alter procedure NorthwindSearch
(
@productID int
)
as
return 1
go
C#获取存储过程返回值代码
protected void btnBack_Click(object sender, EventArgs e)
{
//调用存储过程
stringconStr=ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ToString();
SqlConnection conn = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "NorthwindSearch";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection=conn;
conn.Open();
SqlParameter sp = new SqlParameter("@productID", SqlDbType.Int);
sp.Value = int.Parse(txtProduct.Text.Trim());
cmd.Parameters.Add(sp);
//定义输出参数
SqlParameter returnValue = new SqlParameter("@returnValue", SqlDbType.Int);
returnValue.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(returnValue);
cmd.ExecuteNonQuery();
txtSupplierID.Text = returnValue.Value.ToString();
conn.Close();
}
注意,(return)这种方式 只能返加数值类型
三、C#获取Output输出参数值
存储过程
alter procedure NorthwindSearch
(
@productID int,
@outputValue nvarchar(50) output
)
as
Select @outputValue=SupplierID
from products where ProductID=@productID
go
C#获取存储过程返回值代码
protected void btnBack_Click(object sender, EventArgs e)
{
//调用存储过程
string conStr = System.Configuration.ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ToString();
SqlConnection conn = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "NorthwindSearch";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection=conn;
conn.Open();
SqlParameter sp = new SqlParameter("@productID", SqlDbType.Int);
sp.Value = int.Parse(txtProduct.Text.Trim());
cmd.Parameters.Add(sp);
//定义输出参数
sp = new SqlParameter("@outputValue", SqlDbType.NVarChar,50);
sp.Direction = ParameterDirection.Output;
cmd.Parameters.Add(sp);
cmd.ExecuteNonQuery();
txtSupplierID.Text = cmd.Parameters[1].Value.ToString();
conn.Close();
}
备注:输出参数方式可以返回任何类型的数据
四、获取存储过程返回值总结
1、存储过程共分为3类
A.返回记录集的存储过程---------其执行结果是一个记录集,例如:从数据库中检索出符合某一个或几个条件的记录
B.返回数值的存储过程(也可以称为标量存储过程)-----其执行完以后返回一个值,例如:在数据库中执行一个有返回值的函数或命令
C.行为存储过程---------用来实现数据库的某个功能,而没有返回值,例如:在数据库中的更新和删除操作
2、含有return的存储过程其返回值为return返回的那个值
3、没有return的存储过程,不论执行结果有无记录集,其返回值是0
4、带输出参数的存储过程:如果有return则返回return返回的那个值,如果要select输出参数,则出现输出参数的值,于有无return无关
您可能感兴趣
- sqlserver存储过程怎么写日志(SqlServer快速检索某个字段在哪些存储过程中sql 语句)
- sqlserver存储过程参数默认值(sql server使用临时存储过程实现使用参数添加文件组脚本复用)
- sqlserver数据库中锁的4种类型(SQLSERVER对加密的存储过程、视图、触发器进行解密推荐)
- Sql Server判断函数、存储过程等是否存在
- SQL SERVER存储过程调试
- 使用VS调试存储过程
- mybatis执行sql源码解析(mybatis调用sqlserver存储过程返回结果集的方法)
- mysql创建存储过程的代码(MySQL修改存储过程的详细步骤)
- SQL SERVER获取指定数据库中所有存储过程的参数
- SQL数据库存储过程示例解析(SQL数据库存储过程示例解析)
- sqlserver创建带参数的存储过程(SQLServer存储过程实现单条件分页)
- 怎么写存储过程sql server(SqlServer存储过程实现及拼接sql的注意点)
- 存储过程异常处理
- sqlserver存储过程使用变量(浅析SQL Server的嵌套存储过程中使用同名的临时表怪像)
- sqlserver带参数的存储过程(SQL Server 日期和时间的内部存储过程)
- sqlserver存储删除过程(Sql中存储过程的定义、修改和删除操作)
- 赵薇时胖时瘦 最近变美少女 原因在这里 躺着就变瘦(赵薇时胖时瘦最近变美)
- 学会这26种姿势,你就可以和兵哥哥切磋了(你就可以和兵哥哥切磋了)
- 吴彦祖陈冠希 恩怨 ,失去曾让他流泪的女友,终遇走过18年真爱(吴彦祖陈冠希恩怨)
- 痴情男神 吴彦祖 与妻子恋爱8年,结婚10年,家庭幸福美满(痴情男神吴彦祖)
- 成功破圈,小牛电动SQi强势开 跨(小牛电动SQi强势开)
- 挑战新国标电自天花板,九号机械师MMAX 110P深度体验(挑战新国标电自天花板)
热门推荐
- django环境变量菜鸟教程(Django 多环境配置详解)
- css浮动布局和盒子(css 盒模型 文档流 几种清除浮动的方法实例详解)
- 云服务器托管区别(云服务器托管需要注意哪些事项?)
- dedecms关键词限制(dedecms tag标签伪静态的修改方法)
- 阿里云虚拟主机带公网地址吗(阿里云虚拟主机被搜索引擎爬虫访问耗费大量流量解决方法)
- group by如何知道分了几组(详解partition by和group by对比)
- css怎么快速布局(css重绘与重排的方法)
- python将对象转换成json(python对象与json相互转换的方法)
- mysql8.0.19.0正确安装图解(MySQL 8.0.23 主要更新一览新特征解读)
- 怎么进入云服务器(云服务器端口怎么打开?)