当存储过程中多个结果需要返回时经常需要用到output类型的参数,如果存储过程没有返回结果集只是输出output类型参数时使用如下代码:

db.AddOutParameter(dbCmd, "@ParamName", DbType.Int32, 0);
db.ExecuteNonQuery(dbCmd);

int i = dbCmd.Parameters["@ParamName"].Value.ToString();

但是存储过程返回结果集时使用上面的代码程序将会出现异常,所以存储过程有结果集返回时应使用如下代码:

db.AddOutParameter(dbCmd,"@ParamName", DbType.Int32,0);
 using (IDataReader idr =db.ExecuteReader(dbCmd))
{
}
int i =dbCmd.Parameters["@ParamName"].Value.ToString();

或者

db.AddOutParameter(dbCmd,"@ParamName", DbType.Int32,0);
 using (IDataReader idr =db.ExecuteReader(dbCmd))
{
while(idr.Read())
{
}idr.Close();
int i =dbCmd.Parameters["@ParamName"].Value.ToString();
}

再或者

db.AddOutParameter(dbCmd,"@ParamName", DbType.Int32,0);
 using (IDataReader idr =db.ExecuteReader(dbCmd))
{
while(idr.Read())
{
}
idr.NextResult();
int i =dbCmd.Parameters["@ParamName"].Value.ToString();
idr.Close();
}

总之,想要取得output参数输出的结果值只能在DataReader结果集关闭或者指向一下个结果集时才能取到值。
以上代码使用的是.net企业库Microsoft.Practices.EnterpriseLibrary

.net 存储过程中的 output参数取值问题的更多相关文章

  1. SubSonic3.0使用存储过程查询时,不能使用output参数返回值的问题修改

    有个群友问SubSonic3.0执行存储过程时能不能使用output参数返回值,说测试过后获取不到返回值,早上有些时间所以就尝试修改了一下 首先在数据库中创建一个存储过程 CREATE PROCEDU ...

  2. 在sqlserver存储过程中给in参数传带逗号值的办法,如传'1','2','3'这样的

    最近在一项目修改中,要在存储过程中给in参数传值,语句写的也对,但怎么执行都得不出结果,如果把这语句直接赋值.执行,却能得出结果,很是奇怪,如: 直接执行select schoolname from ...

  3. loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式

    loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式 分类: 心得 loadrunner 我的测试 2012-04-01 12:52 2340人阅读 评论(0) 收藏 举报 脚本l ...

  4. JAVA中自定义扩展Swagger的能力,自动生成参数取值含义说明,提升开发效率

    大家好,又见面了. 在JAVA做前后端分离的项目开发的时候,服务端需要提供接口文档供周边人员做接口的对接指导.越来越多的项目都在尝试使用一些基于代码自动生成接口文档的工具来替代由开发人员手动编写接口文 ...

  5. qt调用sql server存储过程并获取output参数

    最近新做的一个项目需要使用qt5连接另一台机器上的sql server,虽然网上已有类似文章,但还是有些其中很少提及的问题,故在这里汇总下: qt连接sql server可以参考这篇文章: <Q ...

  6. Oracle存储过程-自定义数据类型,集合,遍历取值

    摘要 Oracle存储过程,自定义数据类型,集合,遍历取值 目录[-] 0.前言 1.Packages 2.Packages bodies 3.输出结果 0.前言 在Oracle的存储过程中,可能会遇 ...

  7. sql存储过程中使用 output

    1.sql存储过程中使用 output CREATE PROCEDURE [dbo].[P_Max] @a int, -- 输入 @b int, -- 输入 @Returnc int output - ...

  8. loadrunner 脚本优化-参数化之Parameter List参数取值

    脚本优化-参数化之Parameter List参数取值 by:授客 QQ:1033553122 参数取值选项 Select next row Update value on 以上两个选项是改变参数化取 ...

  9. sql存储过程中使用 output、nvarchar(max)

    1.sql存储过程中使用 output CREATE PROCEDURE [dbo].[P_Max] @a int, -- 输入 @b int, -- 输入 @Returnc int output - ...

随机推荐

  1. c语言循环单链表

    /************************************************************************* > File Name: singleLin ...

  2. Linux定时备份数据到百度云盘

    导读:如今的百度云盘免费容量都是2T了,即使把电脑上所有的东东都放上去,也还有大把的剩余空间.对于站长来说,是完全可以充分利用这些硬盘空间的,现在我们就用百度云盘来备份Linux服务器上的数据. 一直 ...

  3. nginx整合php+lua+oracle环境搭建

    nginx整合php+lua+oracle环境搭建 标签: nginxluaoraclephplinux -- : 1473人阅读 评论() 收藏 举报 分类: 技术() 版权声明:本文为博主原创文章 ...

  4. redis 服务相关

    一 什么是redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开 ...

  5. 个人的Linux实用命令

    Linux下的命令有那么多,我不可能也不想去把每一个都记住,列举一些自己工作中很实用的命令,这些命令或许不是很常用,但是有时候却离不了. 1.网络方面 service iptables start/s ...

  6. 【Spring】java.lang.IndexOutOfBoundsException: Index: 256, Size: 256

    Spring接受前台的数据超过256出现例如以下异常: org.springframework.beans.InvalidPropertyException: Invalid property 'sp ...

  7. golang模板语法简明教程

    [模板标签] 模板标签用"{{"和"}}"括起来   [注释] {{/* a comment */}} 使用“{{/*”和“*/}}”来包含注释内容   [变量 ...

  8. hdu6000 Wash 巧妙地贪心

    /** 题目:hdu6000 Wash 巧妙地贪心 链接:https://vjudge.net/contest/173364#problem/B 转自:http://blog.csdn.net/ove ...

  9. 第二百一十二节,jQuery EasyUI,Combo(自定义下拉框)组件

    jQuery EasyUI,Combo(自定义下拉框)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Combo(自定义下拉框)组件的使用方 ...

  10. 《Windows游戏编程大师技巧》学习笔记——关于创建显示表面

    1.如你所知,显示在屏幕上的图像仅仅只是是以某种格式存储在内存中的有色像素组成的矩阵.或是调色板化的或是RGB模式的.在不论什么一种情况下.要想做点什么你都必须知道如何绘制图到内存中,然而Direct ...