您的位置:首页 > 数据库

c#中利用pl/sql匿名块和游标获取多个结果集

2005-12-20 11:21 357 查看
1.创建测试表并插入数据:

SQL> create table TESTTAB1

2 (

3 NAME1 VARCHAR2(10)

4 );

表被创建

SQL>

SQL> create table testtab2

2 (

3 name2 varchar2(10)

4 )

5 ;

表被创建

SQL> insert into testtab1
values('testtab1');

1 行
已插入

SQL> commit;

提交完成

SQL> insert into testtab2
values('testtab2');

1 行
已插入

SQL> commit;

提交完成

SQL>

2.验证插入的数据:

SQL> select * from testtab1;

NAME1

----------

testtab1

SQL> select * from testtab2;

NAME2

----------

testtab2

SQL>

3.主要的c# 代码:

using ORAC = System.Data.OracleClient;

private void button1_Click(object sender, System.EventArgs e)

{

try

{

string
str_Sql = @"begin open :cur1 for select * from testtab1;open :cur2 for
select * from testtab2;end;";

ORAC.OracleCommand cmd = new ORAC.OracleCommand(str_Sql,this.oracleConnection1);

ORAC.OracleParameter parm1 = new
ORAC.OracleParameter("cur1",ORAC.OracleType.Cursor);

parm1.Direction =
ParameterDirection.Output;

cmd.Parameters.Add(parm1);

ORAC.OracleParameter parm2 = new ORAC.OracleParameter("cur2",ORAC.OracleType.Cursor);

parm2.Direction =
ParameterDirection.Output;

cmd.Parameters.Add(parm2);

ORAC.OracleDataAdapter da = new ORAC.OracleDataAdapter();

da.SelectCommand = cmd;

DataSet ds = new DataSet();

da.Fill(ds);

this.dataGrid1.DataSource = ds.Tables[0].DefaultView;

this.dataGrid2.DataSource
= ds.Tables[1].DefaultView;

}

catch(Exception
ex)

{

MessageBox.Show(ex.Message);

}

finally

{

this.oracleConnection1.Close();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: