如何获取存储过程返回值
类别:数据库 浏览量: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使用临时存储过程实现使用参数添加文件组脚本复用)
- 如何获取存储过程返回值
- sqlserver调试存储过程(sql server2008调试存储过程的完整步骤)
- mysql存储过程limit参数(MySQL存储过程in、out和inout参数示例和总结)
- sqlserver存储过程使用变量(浅析SQL Server的嵌套存储过程中使用同名的临时表怪像)
- sql怎么把表移到另一个数据库中(sql存储过程实例--动态根据表数据复制一个表的数据到另一个表)
- mysql中常用的三种存储引擎的区别(MySQL 存储过程的优缺点分析)
- sqlserver 存储过程参数类型(详解SQL Server表和索引存储结构)
- 存储过程中使用事务Transaction
- 使用VS调试存储过程
- mysql存储过程声明(MySQL存储过程的深入讲解in、out、inout)
- sqlserver数据库中锁的4种类型(SQLSERVER对加密的存储过程、视图、触发器进行解密推荐)
- mysql存储过程和函数(MySQL存储过程的查询命令介绍)
- mssql 存储过程查询语句(MSSQL分页存储过程完整示例支持多表分页存储)
- SQL SERVER获取指定数据库中所有存储过程的参数
- 存储过程异常处理
- 人从众 火炎焱 全椒再现 正月十六走太平 的魅力(人从众火炎焱全椒再现)
- 官宣 全椒籍明星许海峰 奚秀兰 方芳 王璐瑶携手回家 走太平(全椒籍明星许海峰)
- 以前全椒人是怎么过冬的 满满都是回忆(以前全椒人是怎么过冬的)
- NVIDIA显卡份额冲上88 A饭发愁 游戏优化恐没A卡份了(NVIDIA显卡份额冲上88A饭发愁)
- AMD YES A卡还是N卡 A卡和N卡的区别(AMDYESA卡还是N卡)
- 以后显卡多了一个新选择,N卡和A卡外又多了个I卡(以后显卡多了一个新选择)
热门推荐
- json和xml比较与区别
- docker指定容器id(Docker批量容器编排的实现)
- react动态添加组件属性(react使用antd的上传组件实现文件表单一起提交功能完整代码)
- python读取文件怎么用(Python基础之文件读取的讲解)
- sqoop导出参数(sqoop export导出 map100% reduce0% 卡住的多种原因及解决)
- 数据库安装到docker(基于docker安装mariadb配置过程解析)
- SQL语句中单引号
- css长度单位有哪些(聊一聊CSS中的长度单位的使用)
- phpstudy怎么修改mysql版本(PhpStudy集成环境升级MySQL数据库版本的方法)
- dedecms设置二级域名(织梦DEDECMS中要删除指定IP的评论的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9