none
El procedimiento o la función xx esperaba el parámetro yy, que no se ha especificado. RRS feed

  • Pregunta

  • Tengo una consulta almacenada en sql server:

    @id_cliente as int
    as
    select * from dir_cliente
    where id_cliente=@id_cliente

    llamada consultar_dir_cliente

    Cuando realizo la llamada a la misma desde vb.net recibo el error del titulo (con el nombre de la funcion y el parametro dado)

    Public Function cargar_dir_cliente(ByVal id As Integer) As DataTable

    'conectar()

                'cmd = New SqlCommand("cargar_dir_cliente")
                'cmd.Parameters.Add("@id_cliente", SqlDbType.Int).Value = id
                'cmd.Connection = con

    tengo otras funciones similares (parametrizadas) y nunca tuve problemas, he intentado inclusive forzar el parametro (es decir poner por ejemplo el numero "6" (sin comillas) como value del parametro) pero el error persiste.

    Lo "solucione" enviando toda la consulta desde vb.net con un commandtype.text
     cmd = New SqlCommand("select * from dir_cliente where id_cliente=" & id)

    y funciona bien, por lo cual el error no esta en el pasaje de parametros (desde el form a la funcion) sino en el pase de vb.net a sql server

    Preferentemente me gusta tener procedimientos almacenados y solo enviar parametros desde la aplicacion. SI me pueden dar una mano voy a agradecer (sobretodo porque me pican los sesos de no saber donde esta el error mas alla de poder encontrar un bypass al mismo)

    Gracias!

    miércoles, 24 de agosto de 2016 17:37

Respuestas

  • Omar1316,

    ¿Tienes establecido la propiedad CommandType?

    cmd.CommandType = CommandType.StoredProcedure

    Por otro lado, mencionas que el procedimiento se llama 'consultar_dir_cliente' sin embargo en la propiedad CommandText estableces el valor 'cargar_dir_cliente', quizá haces referencia a otro procedimiento que implementa mas de un parámetro.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    • Marcado como respuesta Omar1316 miércoles, 24 de agosto de 2016 19:50
    miércoles, 24 de agosto de 2016 18:17

Todas las respuestas

  • Omar1316,

    ¿Tienes establecido la propiedad CommandType?

    cmd.CommandType = CommandType.StoredProcedure

    Por otro lado, mencionas que el procedimiento se llama 'consultar_dir_cliente' sin embargo en la propiedad CommandText estableces el valor 'cargar_dir_cliente', quizá haces referencia a otro procedimiento que implementa mas de un parámetro.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    • Marcado como respuesta Omar1316 miércoles, 24 de agosto de 2016 19:50
    miércoles, 24 de agosto de 2016 18:17
  • Hola. Puse mal el nombre del procedimiento aca (es decir en sql esta con el nombre "cargar_dir_cliente" como corresponde su llamada en vb.net)
    El "error" increiblemente era que me falto establecer la propiedad del tipo de procedimiento.
    Muchas gracias, parece mentira pero una estupidez que estuve una hora dandole vueltas encima, por eso ya decia que de nunca tener problemas con mis procedimientos almacenados parametrizados pase a tener este problema con este en particular.
    A veces hay que despegar los ojos de la pantalla y volver con la mente fresca nada mas pero no lograba desenmarañar el incoveniente.
    Muchas gracias
    miércoles, 24 de agosto de 2016 19:50
  • Es ABSURDO el mensaje de error. Perdi mas de dos horas por este estupido problema, tratando de entender como es que ese parametro no le llegaba cuando lo estaba definiendo perfectamente.

    Victor Espina Rancagua, Chile

    lunes, 9 de septiembre de 2019 22:41