Duda con la forma de operar proc. almacenado

11/12/2004 - 14:21 por Tio | Informe spam
Tengo un proc almacenado que se limita a devolver una fila:

select * from Articulos where ID = @ID

para llamarlo hago:

cmd.executeReader, ya que quiero que me devuelva una fila.

pero ¿como obtengo el valor @Return_Value que genera el procedimento
almacenado ?.


Hago esto pero no va:

int resultado = (int)dr["@Return_Value"];



dr = SqlDataReader
 

Leer las respuestas

#1 A.Poblacion
11/12/2004 - 16:22 | Informe spam
Para obtener el return value:

SqlConnection cn = ...
cn.Open();
SqlCommand cmd = new SqlCommand("select * from Articulos where ID = @ID",
cn);
SqlParameter parmID = new Sqlarameter("@ID", ...);
parmID.Value = ...
parmID.Direction = ParameterDirection.Input;
cmd.Parameters.Add(parmID);
SqlParameter parmResultado = new Sqlarameter("@Return_Value", ...);
parmResultado.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(parmResultado);
SqlDataReader rdr = cmd.ExecuteReader();
rdr.Read();
//Aqui rdr["..."] devuelve las columnas ("*" en la sentencia)
rdr.Close();
resultado = parmResultado.Value; //Esto te da lo que devuelva el
procedimiento
cn.Close(); //Importante: leer el parmResultado antes de cerrar la conexion


From: "Tio"
Newsgroups: microsoft.public.es.csharp
Sent: Saturday, December 11, 2004 2:21 PM
Subject: Duda con la forma de operar proc. almacenado


Tengo un proc almacenado que se limita a devolver una fila:

select * from Articulos where ID = @ID

para llamarlo hago:

cmd.executeReader, ya que quiero que me devuelva una fila.

pero ¿como obtengo el valor @Return_Value que genera el procedimento
almacenado ?.


Hago esto pero no va:

int resultado = (int)dr["@Return_Value"];



dr = SqlDataReader


Preguntas similares