none
Error al actualizar registro RRS feed

  • Pregunta

  • Cuando deseo modificar un registro, al ejecutar la función "Actualizar" para que se guarden los cambios me da el siguiente error:

    “System.Data.OleDbException (0x80040E14): Error de sintaxis (falta operador) en la expresión de consulta ‘Marcela Ines’.”

    Este es mi código en Actualizar:

    Private Sub btnActualizarRegistro_Click(sender As Object, e As EventArgs) Handles btnActualizarRegistro.Click
           Dim Consulta_Actualizar As String 'Variable para guardar la modificacion
           Try
               Consulta_Actualizar = "Update Pacientes Set Documento = " & txtNuevoDoc.Text & ",Nombre = " & txtNuevoNom.Text  _
                   ", Apellido = " & txtNuevoApe.Text & ", Sexo =" & txtNuevoSexo.Text & ", Fecha_Nacimiento = " & dtpNuevaFNac.Value & _
                   ", Peso_Nacimiento = " & txtNuevoPNac.Text & ", Talla_Nacimiento = " & txtNuevaTNac.Text & ", Perimetro_Cefalico = "
    _
                   & txtNuevoPCNac.Text & ", Edad_Gestacional = " & txtNuevaEGNac.Text & "Where Documente = " & txtNuevoDoc.Text & ""
               Comandos = New OleDb.OleDbCommand(Consulta_Actualizar, Conexion)
               Comandos.ExecuteNonQuery()
               MsgBox("El registro ha sido actualizado", vbInformation, "Actualizado")
               LimpiarCampos()
               'Deactivar campos NO permitiendo la escritura
               txtNuevoDoc.Enabled = False
               txtNuevoNom.Enabled = False
               txtNuevoApe.Enabled = False
               txtNuevoSexo.Enabled = False
               dtpNuevaFNac.Enabled = False
               txtNuevoPNac.Enabled = False
               txtNuevaTNac.Enabled = False
               txtNuevoPCNac.Enabled = False
               txtNuevaEGNac.Enabled = False
               btnModificarRegistro.Enabled = False
               btnActualizarRegistro.Enabled = False
           Catch ex As Exception
               MsgBox(ex.ToString) '"Ha ocurrido un error, No se ha podido guardar el registro", vbExclamation, "Error")
           End Try
       End Sub

    jueves, 30 de julio de 2015 19:11

Respuestas

  • Tienes varias cosas.

    El error te da porque no encierras los valores a asignar a los campos entre comillas simples.

    De todas formas es mejor que asignes los valores de tus consultas por parámetros.

    Además no tiene sentido que actualices el campo Documento con el mismo valor que utilizas en la WHERE.

    El código debería quedarte algo así:

                Dim Consulta_Actualizar = "UPDATE Pacientes SET Nombre = ?, Apellido = ?, Sexo = ?, Fecha_Nacimiento = ?" & _
                    ", Peso_Nacimiento = ?, Talla_Nacimiento = ?, Perimetro_Cefalico = ?, Edad_Gestacional = ? " & _
                    "WHERE Documento = ?"
                Dim comando As New OleDbCommand(Consulta_Actualizar, Conexion)
                comando.Parameters.AddWithValue("Nombre", txtNuevoNom.Text)
                comando.Parameters.AddWithValue("Apellido", txtNuevoApe.Text)
                comando.Parameters.AddWithValue("Sexo", txtNuevoSexo.Text)
                comando.Parameters.AddWithValue("Fecha_Nacimiento", dtpNuevaFNac.Text)
                comando.Parameters.AddWithValue("Peso_Nacimiento", txtNuevoPNac.Text)
                comando.Parameters.AddWithValue("Talla_Nacimiento", txtNuevaTNac.Text)
                comando.Parameters.AddWithValue("Perimetro_Cefalico", txtNuevoPCNac.Text)
                comando.Parameters.AddWithValue("Edad_Gestacional", txtNuevaEGNac.Text)
                comando.Parameters.AddWithValue("Documento", txtNuevoDoc.Text)
    
                comando.ExecuteNonQuery()
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta Estedu viernes, 31 de julio de 2015 0:41
    jueves, 30 de julio de 2015 20:25