企业库调用ORACLE存储过程时返回一个结果集我知道怎么做,但是如何返回多个结果集呢?
返回一个结果集的过程:
create or replace procedure P_Sel_TopCount(in_top in number,
out_count out number,
cur_out out sys_refcursor) is
--查询指定记录条数的数据,并返回总共记录数
begin
SELECT COUNT(*) into out_count FROM userinfo;
open cur_out for
SELECT * FROM userinfo where id < in_top;
end P_Sel_TopCount;c#代码:
Database db = GetDataBase();
DbCommand dbcmd = db.GetStoredProcCommand("P_Sel_TopCount");
db.AddInParameter(dbcmd, "@top", DbType.Int32, 10);
db.AddOutParameter(dbcmd, "@count", DbType.Int32, 4);
DataSet ds = db.ExecuteDataSet(dbcmd);
this.dataGridView1.DataSource = ds.Tables[0];但是如果我想返回多个结果集,也就是说在过程里返回多个游标,用企业库如何实现?当然,如果是普通的写法我知道可以用多个游标,可是企业库好像不支持多个游标,一个游标的名字还必须是cur_out 郁闷。
谁知道,帮忙说说
返回一个结果集的过程:
create or replace procedure P_Sel_TopCount(in_top in number,
out_count out number,
cur_out out sys_refcursor) is
--查询指定记录条数的数据,并返回总共记录数
begin
SELECT COUNT(*) into out_count FROM userinfo;
open cur_out for
SELECT * FROM userinfo where id < in_top;
end P_Sel_TopCount;c#代码:
Database db = GetDataBase();
DbCommand dbcmd = db.GetStoredProcCommand("P_Sel_TopCount");
db.AddInParameter(dbcmd, "@top", DbType.Int32, 10);
db.AddOutParameter(dbcmd, "@count", DbType.Int32, 4);
DataSet ds = db.ExecuteDataSet(dbcmd);
this.dataGridView1.DataSource = ds.Tables[0];但是如果我想返回多个结果集,也就是说在过程里返回多个游标,用企业库如何实现?当然,如果是普通的写法我知道可以用多个游标,可是企业库好像不支持多个游标,一个游标的名字还必须是cur_out 郁闷。
谁知道,帮忙说说
dbCommand.Parameters.Add(new OracleParameter("CUR_OUT1", OracleType.Cursor){Direction = ParameterDirection.Output});
dbCommand.Parameters.Add(new OracleParameter("CUR_OUT2", OracleType.Cursor){Direction = ParameterDirection.Output});
得到结果对应:
ds.tables[0]
ds.tables[1]
ds.tables[2]