Jeff,
You most likely need to explictily add the REF CURSOR output parameter.
ADO, but not ADO.NET, allowed you to specify the "PLSQLRSet= 1" connection
string option to have the Command object automatically do this for you when
populating an ADO Recordset.
This code should work, assuming you have an OUTPUT parameter named
p_ref_cursor that is your own package type that is a REF CURSOR.
using System.Data.Ora cleClient;
....
myOrclConnectio n = new System.Data.Ora cleClient.Oracl eConnection("Da ta
Source=;User ID=scott;Passwo rd=tiger;");
myOracleCommand = New OracleClient.Or acleCommand();
myOracleCommand .CommandType = CommandType.Sto redProcedure;
myOracleCommand .CommandText = "DRM.PKG.LI ST";
myOracleCommand .Connection = myOrclConnectio n;
myOracleCommand .Parameters.Add ("prm_1", OracleType.Int1 6);
myOracleCommand .Parameters("pr m_1").Directio n = ParameterDirect ion.Output;
myOracleCommand .Parameters.Add ("p_ref_cursor" , OracleType.Curs or);
myOracleCommand .Parameters("p_ ref_cursor").Di rection =
ParameterDirect ion.Output;
OracleDataReade r dr =
myOracleCommand .ExecuteReader( CommandBehavior .CloseConnectio n);
DataGrid1.DataS ource = dr;
DataGrid1.DataB ind();
-Steve Jansen
"Jeff" <ja*******@hotm ail.com> wrote in message
news:34******** *************** *****@phx.gbl.. .
Help!!
I'm trying to convert a visual basic stand alone program
into a Web Program using C#. There are a lot of Oracle
packages already written that I am trying to use
(unsuccessfully ). Can someone point me in the right
direction on how to call an Oracle package into a
datagrid??
something like:
cnn.Open();
string sSelect = "{CALL DRM.PKG.LIST(?) }";
OracleCommand selectCommand = new OracleCommand(s Select ,
cnn);
selectCommand.C ommandType = CommandType.Sto redProcedure;
OracleParameter prm1 = new OracleParameter ();
prm1 = selectCommand.P arameters.Add(" prm_1",
OracleType.Int1 6);
prm1.Direction = ParameterDirect ion.Output;
prm1.Value = 0;
OracleDataReade r dr = selectCommand.E xecuteReader();
DataGrid1.DataS ource = dr;
DataGrid1.DataB ind();
Thanks Jeff.