我有执行存储过程的C#代码。该过程执行得很完美,在数据集中我也可以找到预期的两个表。但是表中没有行。
我的C#代码:
using (OracleConnection OraConx = new OracleConnection())
{
InitOraConn(OraConx);
string CommandText = "Stored procedure";
OracleDataAdapter oda = new OracleDataAdapter (new OracleCommand(CommandText, OraConx));
oda.SelectCommand.CommandType = CommandType.StoredProcedure;
oda.SelectCommand.Parameters.Add("I_QTR_YR", qtrYr);
oda.SelectCommand.Parameters.Add("I_EMP_ID", empID);
oda.SelectCommand.Parameters.Add("o_result", OracleDbType.RefCursor)
.Direction = ParameterDirection.Output;
oda.SelectCommand.Parameters.Add("p_result", OracleDbType.RefCursor)
.Direction = ParameterDirection.Output;
oda.SelectCommand.Connection = OraConx;
DataSet ds = new DataSet();
oda.Fill(ds);
return ds;
}
我的存储过程:
PROCEDURE sel_data_for_report (
i_emp_id IN varchar2(20),
i_qtr_yr IN varchar2(20),
o_result OUT sys_refcursor,
p_result OUT sys_refcursor
)
IS
BEGIN
OPEN o_result FOR
SELECT *
FROM table1
WHERE qtr_yr = i_qtr_yr
OPEN p_result FOR
SELECT * from table2
where emp_id = i_emp_id
and qtr_yr = i_qtr_yr ;
END sel_data_for_report;
我需要一种将两个表数据都读入数据集的方法。