none
Error de sintaxis (falta operador) en la expresión de consulta '28 telefono = 2361695'. RRS feed

  • Pregunta

  • Function Modificar_registro(ByVal Id As String, ByVal nombre As String, ByVal apellido As String, ByVal direccion As String, ByVal edad As String, ByVal telefono As String)

            'convertir
            Dim cod As Integer = Convert.ToInt32(Id)
            Dim eda As Integer = Convert.ToInt32(edad)
            Dim fono As Integer = Convert.ToInt32(telefono)

            'conexion
            Dim conexion As New OleDbConnection
            conexion.ConnectionString = "Provider=Microsoft.Ace.Oledb.12.0; Data source = E:\VISUAL BASIC\ingresos_de_pacientes.accdb; persist security info = false "

            'instruccion sql
            Dim cadenasql As String = " UPDATE Paciente SET "
            cadenasql = cadenasql + " nombre     =  '" & nombre & "',"
            cadenasql = cadenasql + " apellido   =  '" & apellido & "',"
            cadenasql = cadenasql + " direccion  =  '" & direccion & "',"
            cadenasql = cadenasql + " edad       =  " & edad & ""
            cadenasql = cadenasql + " telefono   =  " & telefono & ""
            cadenasql = cadenasql + " WHERE id   =  " & cod

            'crear comando
            Dim comando As OleDbCommand = conexion.CreateCommand()
            comando.CommandText = cadenasql

            'ejecutar la consulta de accion
            conexion.Open()
            comando.ExecuteNonQuery()    <------- aqui me sale el error 
            conexion.Close()

            Return True

        End Function

    (no se cual seria el error)

    miércoles, 11 de septiembre de 2019 2:56

Todas las respuestas

  • Hola, en un principio te falta la coma de separación de campos en  & edad & "', "  " telefono. Otra cosa es los dieresis en  edad "'," y eb Telefono "'" . No comprobé el código solo es lo que veo

    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    • Propuesto como respuesta Pablo Rubio miércoles, 11 de septiembre de 2019 15:03
    miércoles, 11 de septiembre de 2019 6:26
  • Te falta la coma después del campo edad

     cadenasql = cadenasql + " edad       =  " & edad & ", "

    Te aconsejo que uses parámetros al crear el comando:

    ...

    'crear comando
    Dim comando As OleDbCommand = New OleDbCommand("UPDATE Paciente SET nombre = @Nombre, apellido = &Apellido, direccion = &Direccion, edad = &Edad, telefono = &Telefono WHERE id = @Id")

    comando.Parameters.Add("@Nombre", nombre)
    comando.Parameters.Add("@Apellido", apellido)
    comando.Parameters.Add("@Direccion", direccion)
    comando.Parameters.Add("@Edad", edad)
    comando.Parameters.Add("@Telefono", telefono)
    comando.Parameters.Add("@Id", cod)

    'ejecutar la consulta de accion
    conexion.Open()
    comando.ExecuteNonQuery()    
    conexion.Close()

    Return True

    End Function


    Saludos, Javier J

    • Propuesto como respuesta Pablo Rubio miércoles, 11 de septiembre de 2019 15:03
    miércoles, 11 de septiembre de 2019 6:38