ado.net access oracle dataset via store procedure
使用存储过程返回结果集,并绑定到ado.net对象中在sql server里面是非常直观的。
1: create procedure GetAllRecords
2: as
3: select * from dept;
存储过程返回一个结果集,然后通过SqlDataAdapter绑定给DataSet。
但是在Oracle里面返回结果集存储过程是不可以这样写的,返回的结果集要通过游标来完成的。
首先创建一个包,新建一个应用游标类型
1: create or replace package cust_types is
2: type ref_cursor is ref cursor;
3: end cust_types;
然后再使用该类型声明一个返回参数
1: create or replace procedure GetDept(all_rec out cust_types.ref_cursor) is
2: begin
3: open all_rec for select * from dept;
4: end GetDept;
在.net中调用是要这样写:
1: var connStr = ConfigurationManager.ConnectionStrings["ora"].ConnectionString;
2:
3: using (OracleConnection conn = new OracleConnection())
4: {
5: conn.ConnectionString = connStr;
6: conn.Open();
7: var cmd = conn.CreateCommand();
8: cmd.CommandText = "GetDept";
9: cmd.CommandType = CommandType.StoredProcedure;
10: cmd.Parameters.Add(new OracleParameter("All_Rec", OracleDbType.RefCursor){Direction = ParameterDirection.Output});
11: var adapter = new OracleDataAdapter(cmd);
12: var ds = new DataSet();
13: adapter.Fill(ds);
14: }
15:
16:
这样才能使用存储过程返回结果集。
ado.net access oracle dataset via store procedure的更多相关文章
- [转]使用ADO.NET访问Oracle存储过程
本文转自:http://www.cnblogs.com/datasky/archive/2007/11/07/952141.html 本文讨论了如何使用 ADO.NET 访问 Oracle 存储过程( ...
- ado.net 之 oracle 数据库
ado.net 操作oracle 数据库 跟操作mssql 的原来基本一样.只是使用不同的命名空间而已.下面举几个例子: 一. C#读取oracle数据库的表格 ///ado.net 读取table ...
- 关于ADO.NET连接ORACLE,使用ODAC连接中的一些问题
ADO.NET连接ORACLE时,用到ODAC组件时,有几点注意的. 1.安装的具体方法见:http://jingyan.baidu.com/article/e4511cf336ce872b845ea ...
- Ways to access Oracle Database in PostgreSQL
Today, organizations stores information(data) in different database systems. Each database system ha ...
- ADO访问Access数据库错误解决心得随笔
最近在用ADO访问Access数据库的时候出现了一个奇怪的错误,觉得有必要记录下来,和大家分享一下. 环境 win7 x86系统: VS2012编译器: Office2010: Access2000~ ...
- oracle的function和procedure返回值给shell
本文演示两个关于如何在shell中调用oracle的function和procedure,并将返回值返回给shell. 1.首在package中创建function和procedure,脚本如下: G ...
- store procedure 翻页
store procedure 翻页例子 .turn page CREATE PROCEDURE pageTest --用于翻页的测试 --需要把排序字段放在第一列 ( )=null, --当前页面里 ...
- ADO.NET与Oracle(一):获取多行记录集
近期接触ADO.NET和Oracle.将我寻常遇到的一些问题和大家共享. 我认为要想入门ADO.NET操作Oracle,最主要的要求就是要会通过ADO.NET更新Oracle中的数据. 该文简单讲些利 ...
- c# ADO连接Access 执行Open后程序自动退出
今天利用ADO连接Access数据库的时候遇到了前所未见的问题,Access数据库连接串,OleDbConnection,open的时候,系统就会自动关闭所有调试. 我就很纠结了,这个AccessHe ...
随机推荐
- Java笔记6-数组
知识大纲一.数组的应用由于数组是用来存储数据的,所以,它的操作总是增.删除.改.查的操作.数组做为一种最基本的数据结构,它在查询上效率是最高的.但是在增加.删除的操作效率是最低的. 因为,数组的长度一 ...
- 该应用的登录功能版本较旧,无法使用QQ账号登录,请升级到最新版本,如果还无法解决,请联系开发者升级。(错误码:100044)
该原因应该是你的应用数据签名更改的原因 解决步骤已经写到我的公众号,二维码在下面. 欢迎观看我的CSDN学院课程,地址:http://edu.csdn.net/course/detail/2877 本 ...
- mysql出现启动不了问题
查询日志后是‘ Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist’此错误(less ...
- 为 C# 代码生成 API 文档(译)
原文地址:http://broadcast.oreilly.com/2010/09/build-html-documentation-for-y.html#comments Sandcastle 功能 ...
- JSBinding / Memory Management (GC)
C# and JavaScript both have Garbage Collection (GC). They should not conflict with each other. Class ...
- LuManager 2.0.97 设置shopex 手机版waptouch,绑定二级目录
1.步骤,先要把主站的 限制目录访问那个勾选,去掉 2.创建新网站,不需要ftp,直接设置网站目录“/home/主站目录/waptouch” 3.保存
- springmvc的xml版本和注解版本
感觉还是注解方式比较实用 xml方式 web.xml <!-- 读取spring mvc的核心配置文件 --> <servlet> <servlet-name>yx ...
- bzoj3745: [Coci2015]Norma
Description Input 第1行,一个整数N: 第2~n+1行,每行一个整数表示序列a. Output 输出答案对10^9取模后的结果. 预处理每个位置的数作为最小/大值向左延伸的最大距离, ...
- JQuery Placeholder - Input提示信息
JQuery Placeholder Placeholder属性是HTML5为Input添加的,在Input上提供一个占位符,文字形式展示输入文字预期值的提示信息. 如: 需要使用:placehold ...
- 标准库函数atoi的实现
标准库函数atoi用于将字符串类型的数据转换为整形数据:在转换过程中要考虑空指针.空字符串"".正负号,溢出等情况 这里是将字符串str转换为32位整型,其正数的最值为0x7FFF ...