Foros del Web » Programación para mayores de 30 ;) » .NET »

Leer parametro devuelto por procedimiento almacenado

Estas en el tema de Leer parametro devuelto por procedimiento almacenado en el foro de .NET en Foros del Web. Hola Tengo el siguiente procedimiento almacenado: Código: CREATE PROCEDURE spConsultarEmpleados @Accion as varchar(1), @Salida as varchar(15) output AS if @Accion='1' begin select idEmpleado as [ID ...
  #1 (permalink)  
Antiguo 01/06/2006, 12:47
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Leer parametro devuelto por procedimiento almacenado

Hola

Tengo el siguiente procedimiento almacenado:
Código:
CREATE PROCEDURE spConsultarEmpleados
@Accion as varchar(1),
@Salida as varchar(15) output
 AS

if @Accion='1'
begin

select idEmpleado as [ID Empleado], strCliente as Nombre, strDescripcion as Cargo from tblEmpleados
set @Salida = 'JHON'

end
GO
El parametro @Salida retorna un valor, pero cuando hago la invocacion desde VS 2005, recupero el select, pero el parametro esta vacio.

Alguien tiene idea como recibir el parametro y capturar el valor,

gracias
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #2 (permalink)  
Antiguo 01/06/2006, 19:32
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 10 meses
Puntos: 7
Muéstranos como recuperas el parámetro de salida.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 02/06/2006, 07:23
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Hola, este es el codigo que uso:

Código:
//Parametros
SqlParameter[] parametros = new SqlParameter[2];
parametros[0] = new SqlParameter("@Accion", "1");
parametros[1] = new SqlParameter("@Salida", "");
parametros[1].Direction = ParameterDirection.Output;

//Conexion
SqlConnection cn = new SqlConnection("server=XXX;database=XXX;uid=XX;pwd=XX");
//Comand
SqlCommand comando = new SqlCommand();
comando.CommandType = CommandType.StoredProcedure;
comando.CommandText = "spConsultarEmpleados";
comando.Connection = cn;
//Le asignamos los parametros al command
for(int i=0;i<parametros.Length;i++)
{
       comando.Parameters.Add(parametros[i]);
}

//Llenamos un dataset
DataSet ds = new DataSet();
SqlDataAdapter adap = new SqlDataAdapter(comando);
adap.Fill(ds);

dataGridView1.DataSource = ds.Tables[0];
Normalmente despues de .fill los parametros toman valor.

Cuando se ejecuta el procedimiento y se genera un error en sql, algo asi como cuando hay registro duplicado, y ese error es asignado al parametro de salida, ahi si lo puedo ver, pero si le asigno un valor asi como lo estoy haciendo el procedimiento almacenado, no lo puedo ver.

Para ver el valor de parametro despues del .fill(), solo digo

Código:
parametro[1].value
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #4 (permalink)  
Antiguo 02/06/2006, 13:51
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 10 meses
Puntos: 7
Cambia:
new SqlParameter("@Salida", "");
por:
new SqlParameter("@Salida", SqlDbType.VarChar, 15);

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 05/06/2006, 07:42
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Funciono!!

Gracias xknown
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:00.