使用 OledbConnection 和 return 从 MVC4 调用存储过程到数据集

calling stored procedure from MVC4 using OledbConnection and return to dataset

我是 oracle11i 的新手,使用 sql 开发人员编写了一个将数据插入临时文件的过程 table - TEMP_ALLOC

create or replace PROCEDURE SP_GEN_ALLOC

(A integer, B, Integer, o_cRefCursor OUT SYS_REFCURSOR)

as
BEGIN
 OPEN o_cRefCursor FOR 
    SELECT colA,colB,colC FROM TEMP_ALLOC;
END SP_GEN_ALLOC;

在 sql 开发人员中执行时,数据正在临时填充 table,现在我需要从 class 在 MVC4 中调用此过程。

OleDbConnection oConn = new OleDbConnection(System.Configuration.ConfigurationManager.AppSettings["dbConn"].ToString());
        try
        {
            oConn.Open();
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = oConn;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "SP_GEN_ALLOC";
            cmd.Parameters.Add("A", OleDbType.BigInt).Value = inta;
            cmd.Parameters.Add("B", OleDbType.BigInt).Value = intb;
            cmd.Parameters.Add("o_cRefCursor",OleDbType.xxxxx
            OleDbParameter oraP = new OleDbParameter();                
            oraP.Direction = System.Data.ParameterDirection.Output;
            cmd.Parameters.Add(oraP);
            OleDbDataReader oreader = cmd.ExecuteReader();
              while(oreader.Read())
                  {
                       ///assigning value to model
                  }

在这里,在 OledbParameter 中,我找不到 OledbType = cursor。这是正确的方法吗? 请帮助 .. 自两天以来一直坚持使用谷歌搜索。 非常感谢帮助。 提前致谢

Remove your out parameter because No need to add parameter for OUT's. Read more https://msdn.microsoft.com/en-us/library/ms973871.aspx

   oConn.Open();
        OleDbCommand cmd = new OleDbCommand();
        cmd.Connection = oConn;
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "SP_GEN_ALLOC";
        cmd.Parameters.Add("A", OleDbType.BigInt).Value = inta;
        cmd.Parameters.Add("B", OleDbType.BigInt).Value = intb;                      
        OleDbDataReader oreader = cmd.ExecuteReader();
          while(oreader.Read())
              {
                   ///assigning value to model
              }