enterprise library 5 在oracle 11 中 访问返回 dataset

问题描述

DbCommandcomm=db.GetStoredProcCommand(usp_User_FindByNameAndPassword);db.AddInParameter(comm,"v_Name",DbType.String,name);db.AddInParameter(comm,"v_Password",DbType.String,password);db.AddOutParameter(comm,"cur_out",DbType.Object,0);DataSetds=db.ExecuteDataSet(comm);

CREATEORREPLACEPROCEDUREusp_User_FindByNameAndPassword--=============================================--Author:<Author,,Name>--Createdate:<CreateDate,,>--Description:<Description,,>--=============================================(v_NameINNVARCHAR2DEFAULTNULL,v_PasswordINNVARCHAR2DEFAULTNULL,cur_outINOUTSYS_REFCURSOR)ASBEGIN--SETNOCOUNTONaddedtopreventextraresultsetsfrom--interferingwithSELECTstatements.--InsertstatementsforprocedurehereOPENcur_outFORSELECT*FROMUSERSWHERENAME=v_NameANDPASSWORD=v_Password;END;

DataSetds=db.ExecuteDataSet(comm);出错了。“参数绑定无效参数名:cur_out”用的是ODP.NET11gfor.netframework4

解决方案

解决方案二:
先在查询分析器里看看你的存储过程有错没啊
解决方案三:
用游标返回
解决方案四:
DbCommandcomm=db.GetStoredProcCommand(usp_User_FindByNameAndPassword);db.AddInParameter(comm,"v_Name",DbType.String,name);db.AddInParameter(comm,"v_Password",DbType.String,password);/*Whenwecallthestoredprocedurewhichreturnsasinglerefcursor,DAABautomaticallycreatesaparameteroftypecursor.Thenameoftheautomaticallycreatedparameteriscur_OUT.Here,onepointshouldbekeptinmindthatthenameoftherefcursorinyourstoredproceduremustbecur_OUT.So,incaseofstoredprocedurewhichreturnssinglerefcursor,youneednotpassrefcursorasparametertoDbCommandobject.*///db.AddOutParameter(comm,"cur_out",DbType.Object,0);DataSetds=db.ExecuteDataSet(comm);

解决方案五:
也就是说,你不用显式的声明游标参数,DAAB会自动创建。
解决方案六:
详情,请参照:http://blog.sina.com.cn/s/blog_3f2ef1180100xci9.html

时间: 2024-08-01 15:05:28

enterprise library 5 在oracle 11 中 访问返回 dataset的相关文章

如何不使用DBCA在Oracle 11中删除数据库

如何不使用DBCA在Oracle 11中删除数据库 本文简短的教程,将会向你展示如何不使用DBCA(数据库配置助手)在Oracle 11中删除数据库. 1- 导入数据库的SID,如果没有定义的话 export ORACLE_SID=database 2- 以操作系统认证连接数据库 [oracle@Oracle11 ~]$ sqlplus / as sysdba   SQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 1 17:38:02 2014

在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreSQL.IBM DB2.或者国产达梦数据库等等,这些数据库的共同特点是关系型数据库,基本上开发的模型都差不多,不过如果我们基于ADO.NET的基础上进行开发的话,那么各种数据库都有自己不同的数据库操作对象,微软企业库Enterprise Library是基于这些不同数据库的操作做的抽象模型,适合多数据

Enterprise Library Policy Injection Application Block 之三:PIAB的扩展—创建自定义CallHandler(提供Source Code下载)

本系列的第一部分对PIAB使用场景进行了简单的介绍,作中阐述了通过PI(Policy Injection)的方式实现了Business Logic和Non-Business Infrastructure Logic的分离,从而实现了AOP(Aspect Oriented Programming).在第二部分中详细介绍PIAB的实现机制:通过自定义RealProxy的方式实现了Method Injection.通过这几天接收到的网友的留言,觉得很多人对在具体的项目开发中如何使用PIAB还有很多困惑

Enterprise Library 4 数据访问应用程序块

据穿过应用程序层( application layers).以及将修改的数据提交回数据库系统.应用程序块包含对存储过程和内联 SQL 的支持.常规内部(housekeep)处理,如管理连接.创建并缓存参数,都封装在应用程序块的方法中.换句话说,数据访问应用程序块在简单易用的类中提供了对 ADO.NET 的最常用的特性的访问:这提高了开发人员的工作效率. ADO.NET 2.0 提供了如 DbCommand 类和 DbConnection 这样的类,这些类有助于从任何特定数据库实现中抽象出数据提供

使用Enterprise Library操作Oracle的疑点难点总结

我们知道,Microsoft patterns & practices小组开发的Enterprise Library是一款非常好的组件,其有很多个模块,包括数据访问.配置.加密.IOC容器.日志.异常处理等内容,其中数据访问模块是其中非常不错的一个数据访问组件,提供了对各种数据库操作的抽象封装,使用数据访问起来基本上是对各种数据库是透明的,最重要的是,简化了代码,提高了开发效率.本文介绍Enterprise Library中的数据访问模块在操作Oracle过程中的一些经验总结,作为自己和博友做数

Enterprise Library 2.0 Hands On Lab 翻译(2):数据访问程序块(二)

练习2:存储过程和使用程序块更新数据 该练习将示范如何用数据访问应用程序调用存储过程,并使用强类型的DataSet来更新数据. 第一步 打开DataEx2.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex02\begin,并编译. 第二步 在QuickStarts数据库中添加Categories数据表 运行批处理文件SetUpEx0

Enterprise Library 2.0 Hands On Lab 翻译(1):数据访问程序块(一)

练习一:使用数据访问程序块执行静态SQL语句 该练习示范了如何使用数据访问程序块进行最基本的数据访问,另外还有如何去配制程序块,提供运行时再选择数据库. 第一步 打开SimpleData.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex01\begin,并编译. 第二步 创建QuickStarts数据库 1.用记事本打开DataAc

Oracle 11.2中控制并行的新参数

在Oracle 11.2中引入了几个新的并行查询参数.对于数据仓库应用来说经常利用并行处理来快速有效地处理信息尤其是查询非常大的表或加入了复杂的算式更应该使用并行查询.在Oracle之前的版本中我们不得不或多或秒的来决定自动并行度.决定一个最佳并行度是非常困难的.真实最佳并行度依赖于数据块在磁盘上的物理位置以及服务器的CPU数量(cpu_count)为了解决并行查询的这些问题 在Oracle11.2中引入了以下新的并行查询参数 1.parallel_degree_policy parallel_

在JSP中访问Oracle ,SqlServer ,DB2, Informix ,Access 数据库

access|js|oracle|server|sqlserver|访问|数据|数据库 在JSP中访问Oracle ,SqlServer ,DB2, Informix ,Access 数据库现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发.在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类