我很难让我的 c# 代码运行存储过程并返回行,以便我可以在我的数据网格上显示。我搜索了该站点,发现其他人也有同样的问题,但我尝试了建议的修复程序,但仍然收到“调用中的参数数量或类型错误”错误。
这是我的存储过程代码
create or replace
PROCEDURE GetData
(
P_RECS OUT SYS_REFCURSOR,
P_YEARLIST IN VARCHAR2
)
AS
BEGIN
OPEN P_RECS FOR
select desc
from emp_data
where trim(SYear) in (P_YEARLIST)
order by upper(trim(SYear)) asc ;
END GetData ;
这是我的 C# 代码
using (OracleCommand cmd = new OracleCommand("GetData", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter opRefCur = new OracleParameter();
opRefCur.ParameterName = "P_RECS";
opRefCur.OracleDbType = OracleDbType.RefCursor;
opRefCur.Direction = ParameterDirection.ReturnValue;
OracleParameter opYearList = new OracleParameter();
opYearList.ParameterName = "P_YEARLIST";
opYearList.OracleDbType = OracleDbType.Varchar2;
opYearList.Value = '1973';
opYearList.Direction = ParameterDirection.Input;
cmd.Parameters.Add(opRefCur);
cmd.Parameters.Add(opYearList);
try
{
OracleDataReader dr = cmd.ExecuteReader();
}
catch (Exception ex)
{
}
}
这只是这个存储过程的开始。我必须添加更多参数。我确定这很简单,我已经多次查看代码但我无法更正它。任何帮助将不胜感激。
谢谢