• Domingo 17 de Noviembre de 2024, 14:22

Autor Tema:  .net Y Salida De Parámetros De Sp  (Leído 4353 veces)

Vate

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
.net Y Salida De Parámetros De Sp
« en: Viernes 19 de Enero de 2007, 09:46 »
0
Hola, estoy desarrollando un programa en VB .net 2005 y tengo un Stored procedure en SQL que tiene varias entradas y una sola salida(ouput).Estoy haciendo una funcion en VB net  que me arroje el valor de ese parametro de salida del SP  que es un entero:

El problema es que no se como hacer que ese parametro de salida del SP sea tambien la salida de la funcion en VBnet, en otras palabras, se como añadir parametros de entrada al SP (Parameters.Add)pero no se como declarar las salidas.

Muestro mi funcion

 Public Function RegistraLlamadaCaso(ByVal vNomCliente As String, ByVal vFechaLlamada As String, ByVal vFechaHoraInicioCaso As String, ByVal vNomClaseEquipo As String, ByVal vNomTipoEquipo As String) As Integer
        Try
            Dim Cnx As New SqlConnection(cadena)
            Dim Cmd As New SqlCommand("usp_RegistraCasoLlamada", Cnx)
            With Cmd
                .CommandType = CommandType.StoredProcedure
                .Parameters.Add(New SqlParameter("@NomCliente", SqlDbType.VarChar, 50)).Value = vNomCliente
                .Parameters.Add(New SqlParameter("@FechaLlamada", SqlDbType.VarChar, 25)).Value = vFechaLlamada
                .Parameters.Add(New SqlParameter("@FechaHoraInicioCaso", SqlDbType.VarChar, 25)).Value = vFechaHoraInicioCaso
                .Parameters.Add(New SqlParameter("@NomClaseEquipo", SqlDbType.VarChar, 20)).Value = vNomClaseEquipo
                .Parameters.Add(New SqlParameter("@NomTipoEquipo", SqlDbType.VarChar, 20)).Value = vNomTipoEquipo
                 End With
            Cnx.Open()
            Cmd.ExecuteNonQuery()
            Cnx.Close()
        Catch ex As SqlException
            Throw ex
        End Try

    End Function

Gracias de antemano
Vate

Vate

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: .net Y Salida De Parámetros De Sp
« Respuesta #1 en: Viernes 19 de Enero de 2007, 16:05 »
0
hola amigos, intente hacer el siguiente cambio pero aun no sale, siempre tiene como salida el valor cero  :lightsabre:


           param.ParameterName = "@IdCaso"
                param.SqlDbType = SqlDbType.Int
                param.Direction = ParameterDirection.Output
                .Parameters.Add(param)
                val = Cmd.Parameters("@IdCaso").Value

luego al final de la funcion , para asignar el valor de salida a la funcion

return(value)



El programa compila, pero siempre el resultado de la funcion me da cero :(, porfavor si alguien sabe alg al respecto hagamelo saber

Gracias
Walter

craliaga

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: .net Y Salida De Parámetros De Sp
« Respuesta #2 en: Viernes 19 de Enero de 2007, 16:19 »
0
Te aseguraste de primero ejecutar el query:
Cnx.Open()
Cmd.ExecuteNonQuery()
antes de leer el resultado de la variable de retorno?
 val = Cmd.Parameters("@IdCaso").Value
Cnx.Close()
Carlos

Vate

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: .net Y Salida De Parámetros De Sp
« Respuesta #3 en: Viernes 19 de Enero de 2007, 16:48 »
0
Gracias amigo craliaga, eso era, lo posteo para cualquiera que haya tenido el mismo dilema que yo

 Public Function RegistraLlamadaCaso(ByVal vNomCliente As String, ByVal vFechaLlamada As String, ByVal vFechaHoraInicioCaso As String, ByVal vNomClaseEquipo As String, ByVal vNomTipoEquipo As String) As Integer

        Try
            Dim Cnx As New SqlConnection(cadena)
            Dim Cmd As New SqlCommand("usp_RegistraCasoLlamada", Cnx)
            Dim param As New SqlParameter
            Dim val As Integer
            With Cmd
                .CommandType = CommandType.StoredProcedure
                .Parameters.Add(New SqlParameter("@NomCliente", SqlDbType.VarChar, 50)).Value = vNomCliente
                .Parameters.Add(New SqlParameter("@FechaLlamada", SqlDbType.VarChar, 25)).Value = vFechaLlamada
                .Parameters.Add(New SqlParameter("@FechaHoraInicioCaso", SqlDbType.VarChar, 25)).Value = vFechaHoraInicioCaso
                .Parameters.Add(New SqlParameter("@NomClaseEquipo", SqlDbType.VarChar, 20)).Value = vNomClaseEquipo
                .Parameters.Add(New SqlParameter("@NomTipoEquipo", SqlDbType.VarChar, 20)).Value = vNomTipoEquipo
                '.Parameters.Add(New SqlParameter("@IdCaso", SqlDbType.Int).Direction = ParameterDirection.Output)
                param.ParameterName = "@IdCaso"
                param.SqlDbType = SqlDbType.Int
                param.Direction = ParameterDirection.Output
                .Parameters.Add(param)

            End With
            Cnx.Open()
            Cmd.ExecuteNonQuery()
            val = Cmd.Parameters("@IdCaso").Value
            Return (val)
            Cnx.Close()

        Catch ex As SqlException
            Throw ex
        End Try


    End Function