none
porque me dice error en query si no tengo declarado nvarchar(4000) RRS feed

  • Pregunta

  • el formato de la BD  es una tabla  Turno y  una tabla detalle que tiene un FK de turno (IdTurno) todos los datos llegan bien hasta el insert into Detalle (resaltado)

      Public Sub GrabarTurno(GrabarDetalleTurno As Entidades.Turno, ConfiguracionConexion As ConfiguracionConexion)
                Dim conexion As New Framework.GonzalezNatalia.Persistencia.Conexion(Framework.GonzalezNatalia.Persistencia.Conexion.MotoresDisponibles.SqlServerClient)
                conexion.ConexionIniciar(ConfiguracionConexion)
                Try
                    conexion.TransaccionIniciar()
                    conexion.Ejecutar("insert into Turno Values(@Fecha,@IdPaciente, @IdTipoTurno,@IdMedico)", False, Framework.GonzalezNatalia.Persistencia.IConexion.TipoRetorno.SinResultado,
                                          GrabarDetalleTurno.Fecha, GrabarDetalleTurno.paciente.IdPaciente, GrabarDetalleTurno.turnotipo.IdTipoTurno, GrabarDetalleTurno.medico.IdMedico)
                    ' conocer el IdTurno del Turno creado
                    GrabarDetalleTurno.IdTurno = conexion.Ejecutar("select Max(IdTurno) from Turno  ", False, Framework.GonzalezNatalia.Persistencia.IConexion.TipoRetorno.Escalar).ResultadoEscalar
                    ' grabar todos los detalles
                    For Each Detalle In GrabarDetalleTurno.detalles
                        conexion.Ejecutar("Insert into Detalle values (@Diagnostico, @IdTurno ) ", False, IConexion.TipoRetorno.SinResultado, GrabarDetalleTurno.diagnostico.Diagnostico, GrabarDetalleTurno.IdTurno)

    ERROR QUE SALE : The parameterized query '(@Diagnostico nvarchar(4000),@IdTurno int)Insert into Detalle va' expects the parameter '@Diagnostico', which was not supplied.
                    Next
                    conexion.TransaccionAceptar()
                Finally
                    conexion.ConexionFinalizar()
                End Try

            End Sub

    Aclaro que en la base de datos en la tabla detalle el item diagnostico esta declarado nvarchar(50) no 4000

    saludos y gracias
    martes, 10 de marzo de 2015 10:05

Todas las respuestas

  • hola...como realizas el seteo de los,parámetros en conexión.Ejecutar()?

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    martes, 10 de marzo de 2015 13:25
  • ahi puse como hice la conexion.ejecutar()
    martes, 10 de marzo de 2015 16:46
  • Hola Nati,

    ¿Usted está validando si efectivamente se está enviando un valor en el parámetro @Diagnostico? GrabarDetalleTurno.diagnostico.Diagnostico, GrabarDetalleTurno.IdTurno) 

    martes, 10 de marzo de 2015 17:34
  • hola

    como defines los parametro de la query

    Insert into Detalle values (@Diagnostico, @IdTurno )

    asignas estos al objeto SqlCommand ? usas algo como ser

    cmd.Parameters.Add(...)

    porque no veo en el Ejecutar() como asignas estos parametros

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 10 de marzo de 2015 18:58