存储过程无法得到返回型参数

普遍大家都会用SqlDataReader做返回结果集,但是如果做业务有返回型参数的时候,参数死活都是空值,而存储过程中有此参数的值,

如果用DataTable就没问题了,原因分析是DataReader查询后在返回型参数没有存储之前就已经断开连接了,所以值没有得到保存,所以为空值。

而DataTable把所有数据都已经存起来了,之后才断开链接,所以值就会被取出来。这个东西真是麻烦,希望大家以后不要走此弯路了。

时间: 2024-08-07 08:58:57

存储过程无法得到返回型参数的相关文章

Cpp 调用sql server 存储过程时不返回output参数解决办法

Cpp 调用sql server 存储过程时不返回output参数,但是在ssms中调用的时候能正常返回,貌似数据库和应用代码是一切正常,再测试用c#调用也能正常获取output参数,在存储过程的的开始加上set nocount on,就能解决这个问题. 墙外原文件:点击打开链接

存储过程: 查询返回输出参数

declare @strReturn varchar(max) exec Proc_Fosun_Pay_Tran2WaitPayment 874302,15,@strReturn OUTPUT select @strReturn declare @BillID varchar(max) declare @Result varchar(max) exec UP_SYS_GetBillId '753502',@BillID output,@Result output select @BillID,@

任意多的整型参数返回最值

1 #定义一个方法 func,该func可以引入任意多的整型参数,结果返回其中最大与最小的值. 2 def func1(*nums): 3 for i in nums: 4 if not isinstance(i,int): 5 return '无法比较,请保证全部是整数!' 6 #要使函数执行到这里时结束,比较好用的方式是return 7 #函数执行到return就会结束 8 9 return max(nums),min(nums) 10 11 print(func1(1,35,5,6,'s'

Entity Framework 6 Recipes 2nd Edition(10-2)译 -> 返回输出参数

10-2. 返回输出参数 问题 想获取存储过程里的一个或多个输出参数的值 解决方案 假设我们有一个像Figure 10-1所示的,出租车辆与租金收入的模型 Figure 10-1.出租车辆与租金收入的模型 我们想知道在指定日期里,收入了几笔租金和金额, 以及车辆的租凭情况. 存储过程Listing 10-7 就是获取这些信息的. Listing 10-7. A Stored Procedure for the Vehicles Rented, the Number of Rentals, and

Java调用存储过程(有返回值)

1:创建存储过程 此存储过程通过传入的参数(Name),返回一个参数(address). create or replace procedure demo_procedure(namedemo in varchar2,addressdemo out varchar2)asbegin select address into addressdemo from system.demo where name=namedemo;end; 2:Java代码: import java.sql.Callable

MyBatis之四:调用存储过程含分页、输入输出参数

在前面分别讲解了通过mybatis执行简单的增删改,多表联合查询,那么自然不能缺少存储过程调用,而且还带分页功能. 注意:表结构参见上篇讲解联合查询的表. 一.查询某班级以及该班级下面所有学生的记录 上面这个查询可以用sql语句表示为: select c.class_id,c.class_name,s.s_id,s.s_name from Class c left join ClassStudent cs on c.class_id = cs.class_id left join Student

Dapper完美兼容Oracle,执行存储过程,并返回结果集。

这个问题,困扰了我整整两天. 刚刚用到Dapper的时候,感觉非常牛掰.特别是配合.net 4.0新特性dynamic,让我生成泛型集合,再转json一气呵成. 不过,各种ORM总有让人吐槽的地方... 比如,我之前在SqlServer上写测试,搞封装,没有任何问题.CURD.批量操作.存储过程.事物等. 可是以转到Oracle上,就出问题了[喂~不是说好的支持Oracle的么] 在写Dapper+Oracle单元测试的前期,是没有问题的,也就是说普通的Sql操作是没有任何问题的. 然后,我写到

String作为输出型参数时获取不到值

有时候在一个方法中,我们需要返回多个字符串,而又不想将这些字段包成一个类.此时就需要使用输出型参数. 但是如果将输出型参数的类型声明为String,那么调用该方法后,是获取不到我们想要的值的. 测试代码如下: public class StringTest { public static void main(String[] args){ StringTest st = new StringTest(); String a = "a"; String b = "b"

Oracle在存储过程中如何返回结果集

Oracle和Sqlserver不一样的地方有很多. 个人最深的体会是存储过程返回结果集,在Sqlserver中直接select查询就行,Oracle就不行了. 这里,就用最简单的例子说明存储过程返回结果集的例子 CREATE OR REPLACE PROCEDURE 存储过程名( 字段名 in VARCHAR2, l_result OUT TYPES.RQ_REF_CURSOR -- 包里面方法名 ) is str_sql varchar2(8000) := ''; begin str_sql