none
Error falta operador en la exprecion de consurta RRS feed

  • Pregunta

  • Ayuda soy nuevo  programando y no comprendo estos errores

    ESTE ES EL CODIGO;

     Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

            If (Me.codusuario.Text = "") Then
                MsgBox("el campo cursos no puede estar vacio", MsgBoxStyle.Critical, "atención")
                Me.codusuario.Select()
            Else
                Dim codusuario As Integer
                Dim usuarios As Object
                Dim contraseña As Object

                codusuario = Me.codusuario.Text
                usuarios = Me.usuarios.Text
                contraseña = Me.contraseña.Text

                cmd.CommandType = CommandType.Text
                cmd.Connection = conn

                sql = "INSERT INTO usuario(codusuario, usuarios, contraseña) "
                sql += " values (" & codusuario & ",'" & usuarios & ",'" & contraseña & "') "

                cmd.CommandText = sql
                Try

                    cmd.ExecuteNonQuery()


                    MsgBox("Registro insertado correctamente")
                Catch ex As Exception


                    MsgBox(ex.ToString)

                End Try
            End If

        End Sub


    • Editado DIEGOHV miércoles, 25 de junio de 2014 3:36
    miércoles, 25 de junio de 2014 3:30

Respuestas

  • he visto que en esta linea

     sql += " values (" & codusuario & ",'" & usuarios & ",'" & contraseña & "') "

    te falta un  apostrofe despues de usuarios

     sql += " values (" & codusuario & ",'" & usuarios & "','" & contraseña & "') "

    Marco en negrita


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


    jueves, 26 de junio de 2014 14:38
  • De todas formas el empleo de una sentencia a traves de cadena concatenada NO es recomendable.

    Debes usar consultas parametrizadas para evitar lo que te está ocurriendo y el sql injection.

    Te paso un ejemplo espero entiendas

    Public Function Insertar(ByVal nombre As String, _
                             ByVal apellidos As String, _
                             ByVal email As String, _
                             ByVal fecha As DateTime, _
                             ByVal descripcion As String) As Integer
        Dim sCon As String = CadenaConexion()
        Dim sel As String
    
        sel = "INSERT INTO " & NombreTabla & _
            "(Nombre, Apellidos, Email, Fecha, Descripcion) " & _
            "VALUES " & _
            "(@Nombre, @Apellidos, @Email, @Fecha, @Descripcion) " 
    
        Using con As New SqlConnection(sCon)
            Dim cmd As New SqlCommand(sel, con)
            cmd.Parameters.AddWithValue("@Nombre", nombre)
            cmd.Parameters.AddWithValue("@Apellidos", apellidos)
            cmd.Parameters.AddWithValue("@Email", email)
            cmd.Parameters.AddWithValue("@Fecha", fecha)
            cmd.Parameters.AddWithValue("@Descripcion", descripcion)
    
            con.Open()
             cmd.ExecuteNonQuery() 
            con.Close()
    
            Return t
        End Using
    End Function


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

    jueves, 26 de junio de 2014 14:42
  • muchas gracias lo logramos gracias de verdad...

    sql += " values (" & codusuario & ",'" & usuarios & "','" & contraseña & "') "

    con este

    jueves, 26 de junio de 2014 23:18

Todas las respuestas

  • y qué errores? No lo has indicado.

    saludos


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

    miércoles, 25 de junio de 2014 12:46
  • solo dice que falta operador en la expresión de la consulta y uso eso mismo código para otras tablas y me funciona solo cambio los datos.

    lo hace cuando intento guardar los datos ese código lo uso en el botón guardar para insertar la consulta los nombres de la tabla son idénticos no entiendo i estoy usando access 2013 pero en dos tablas mas me fusiono bien pero ya. no soy nuevo programando y no tengo mucha experiencia.. 



    • Editado DIEGOHV jueves, 26 de junio de 2014 2:52
    jueves, 26 de junio de 2014 2:49
  • he visto que en esta linea

     sql += " values (" & codusuario & ",'" & usuarios & ",'" & contraseña & "') "

    te falta un  apostrofe despues de usuarios

     sql += " values (" & codusuario & ",'" & usuarios & "','" & contraseña & "') "

    Marco en negrita


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


    jueves, 26 de junio de 2014 14:38
  • De todas formas el empleo de una sentencia a traves de cadena concatenada NO es recomendable.

    Debes usar consultas parametrizadas para evitar lo que te está ocurriendo y el sql injection.

    Te paso un ejemplo espero entiendas

    Public Function Insertar(ByVal nombre As String, _
                             ByVal apellidos As String, _
                             ByVal email As String, _
                             ByVal fecha As DateTime, _
                             ByVal descripcion As String) As Integer
        Dim sCon As String = CadenaConexion()
        Dim sel As String
    
        sel = "INSERT INTO " & NombreTabla & _
            "(Nombre, Apellidos, Email, Fecha, Descripcion) " & _
            "VALUES " & _
            "(@Nombre, @Apellidos, @Email, @Fecha, @Descripcion) " 
    
        Using con As New SqlConnection(sCon)
            Dim cmd As New SqlCommand(sel, con)
            cmd.Parameters.AddWithValue("@Nombre", nombre)
            cmd.Parameters.AddWithValue("@Apellidos", apellidos)
            cmd.Parameters.AddWithValue("@Email", email)
            cmd.Parameters.AddWithValue("@Fecha", fecha)
            cmd.Parameters.AddWithValue("@Descripcion", descripcion)
    
            con.Open()
             cmd.ExecuteNonQuery() 
            con.Close()
    
            Return t
        End Using
    End Function


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

    jueves, 26 de junio de 2014 14:42
  • muchas gracias lo logramos gracias de verdad...

    sql += " values (" & codusuario & ",'" & usuarios & "','" & contraseña & "') "

    con este

    jueves, 26 de junio de 2014 23:18