如何获取存储过程返回值
类别:数据库 浏览量: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 存储过程(SQL Server解析XML数据的方法详解)
- sqlserver存储过程使用变量(浅析SQL Server的嵌套存储过程中使用同名的临时表怪像)
- 存储过程中如何获取错误信息
- sqlserver存储过程怎么写日志(SqlServer快速检索某个字段在哪些存储过程中sql 语句)
- 怎么写存储过程sql server(SqlServer存储过程实现及拼接sql的注意点)
- mysql存储过程声明(MySQL存储过程的深入讲解in、out、inout)
- sql怎么把表移到另一个数据库中(sql存储过程实例--动态根据表数据复制一个表的数据到另一个表)
- SQL数据库存储过程示例解析(SQL数据库存储过程示例解析)
- SQL SERVER获取指定数据库中所有存储过程的参数
- 存储过程中使用事务Transaction
- sqlserver带参数的存储过程(SQL Server 日期和时间的内部存储过程)
- sqlserver创建带参数的存储过程(SQLServer存储过程实现单条件分页)
- SQL SERVER存储过程调试
- mysql存储过程定义表(MySQL存储过程的创建、调用与管理详解)
- sqlserver存储过程同步数据(SQL Server存储过程同时返回分页结果集和总数)
- SQL SERVER存储过程中使用事务与try catch
- 全椒人,你还记得吗 那年,那人,那网,那些我们的青春记忆(全椒人你还记得吗)
- 全椒人在苏州10周年联谊会在苏州举办(全椒人在苏州10周年联谊会在苏州举办)
- 这个全椒人被通报表彰,看看你认识吗(这个全椒人被通报表彰)
- 全椒人,38年集体回忆 1980-2018 ,看完不要哭(全椒人38年集体回忆)
- 董元奔吟咏历代文人 1012新旧均可 全椒人张璪 1022 -1093(董元奔吟咏历代文人)
- 泪目 这位 刷屏 的英雄,是全椒人的骄傲(泪目这位刷屏)
热门推荐
- SQLServer数据库从高版本降级到低版本实例详解(SQLServer数据库从高版本降级到低版本实例详解)
- docker指定基础镜像命令(Docker重命名镜像名称和TAG操作)
- Uncaught TypeError: jQuery.handleError is not a function
- sqlserver使用简介(SQL Server Page结构深入分析)
- mysql中查询数据合并(Mysql合并结果接横向拼接字段的实现步骤)
- css3最新特效(CSS3实现的文字弹出特效)
- sql注入测试常用的工具(Sql注入工具_动力节点Java学院整理)
- 常用的mysql查询语句(MySQL查询重写插件的使用)
- 阿里云ecs怎么当成云主机用(阿里云ECS服务器入门使用流程新手必看教程)
- dockernacos教程(Docker+nacos+seata1.3.0安装与使用配置教程)