C#调用ORACLE存储过程返回结果集

 

Oracle中scott用户下创建存储过程:

(注:从9i开始有了sys_refcursor这种类型,在以前的Oracle版本中需要使用REF CURSOR,并且还需放在一个程序包中)

create or replace procedure sp_getdept

(result out sys_refcursor)

as

begin

open result for select * from dept;

end;

/

 

 

===================================================

.net环境下(用的WINDOWS程序,WEB基本相同;环境为VS2005

==记着先添加引用System.Data.OracleClient

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.OracleClient;

 

namespace WindowsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

      

        private void Form1_Load(object sender, EventArgs e)

        {

            OracleConnection con = new OracleConnection("server=orcl;uid=scott;pwd=tiger");

            OracleCommand cmd = new OracleCommand("sp_getdept",con);

            cmd.CommandType = CommandType.StoredProcedure;

            OracleParameter p1 = new OracleParameter("result", OracleType.Cursor);

            p1.Direction = System.Data.ParameterDirection.Output;

            cmd.Parameters.Add(p1);

            OracleDataAdapter da = new OracleDataAdapter(cmd);

            DataSet ds = new DataSet();

            da.Fill(ds);

            this.dataGridView1.DataSource = ds.Tables[0];

        }

    }

}

http://www.cnblogs.com/lgzslf/archive/2008/08/28/1278469.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值