none
ERROR AL REALIZAR UN INSERT RRS feed

  • Pregunta

  • HOLAS

    necesito ayuda pls

    tengo un formulario que me genera una factura al momento de realizar el insert me sale un error que dice "error de sintaxis"

    en la siguiente linea que se encuentra subrayada

    Dim query As String = "INSERT INTO FACTURA(NUMERO,FECHA,NIT,NOMBRE,DIRECCION," & _
            "LOCAL,N_CONTRATO,VALOR,IVA,TOTAL) " &_
        " & " VALUES(@NUMERO,@FECHA,@NIT,@NOMBRE,@DIRECCION,@LOCAL,@N_CONTRATO,@VALOR,@IVA,@TOTAL)"

    jueves, 14 de febrero de 2013 16:13

Respuestas

  • no veo nada incorrecto

    podrias probar de escribir la query en una sola linea para ver si es algo de la union del string

    tambien podrias vlaidar si los nombres de los campos de la tabla estan correctos, si estan bien escritos

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta JUAN TOBON viernes, 15 de febrero de 2013 14:53
    jueves, 14 de febrero de 2013 17:48

Todas las respuestas

  • Recuerda de que tienes campos Entero, Alfa Numéricos y Fecha posiblemente te este faltando agregar ' ' a los campos Alfa Numéricos y a tu campo de Fecha.

    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos

    • Marcado como respuesta JUAN TOBON jueves, 14 de febrero de 2013 16:29
    • Desmarcado como respuesta JUAN TOBON jueves, 14 de febrero de 2013 16:39
    jueves, 14 de febrero de 2013 16:20
  • pero alli como serparas casa linea de la query porque no veo que uses el & _

    Dim query As String = "INSERT INTO FACTURA(NUMERO,FECHA,NIT,NOMBRE,DIRECCION," & _
            "LOCAL,N_CONTRATO,VALOR,IVA,TOTAL) " & _
            "VALUES (@NUMERO,@FECHA,@NIT,@NOMBRE,@DIRECCION,@LOCAL,@N_CONTRATO,@VALOR,@IVA,@TOTAL)"

    falta que uses el & _ para definir cada linea

    Nota: usa siemrpe parametro, no cancatenes en un string los valores eso no es correcto


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    jueves, 14 de febrero de 2013 16:39
  •  

    mi código es el siguiente y ya le coloque a los campos que son tipo texto y fecha ' ' pero sigue saliendo el mismo error mi base de datos es en access


    Dim query As String = "INSERT INTO FACTURA(NUMERO,FECHA,NIT,NOMBRE,DIRECCION," & _
            "LOCAL,N_CONTRATO,VALOR,IVA,TOTAL) " & " VALUES('@NUMERO','@FECHA',@NIT,'@NOMBRE','@DIRECCION','@LOCAl',@N_CONTRATO,@VALOR,@IVA,@TOTAL)"

            Dim CMD As New OleDb.OleDbCommand(query, CN)
            CMD.Parameters.AddWithValue("'@NUMERO'", TXTNUM.Text)
            CMD.Parameters.AddWithValue("'@FECHA'", TXTFE.Text)
            CMD.Parameters.AddWithValue("@NIT", TXTNIT.Text)
            CMD.Parameters.AddWithValue("'@NOMBRE'", TXTNOM.Text)
            CMD.Parameters.AddWithValue("'@DIRECCION'", TXTDIR.Text)
            CMD.Parameters.AddWithValue("'@LOCAL'", TXTLOC.Text)
            CMD.Parameters.AddWithValue("@N_CONTRATO", TXTNC.Text)
            CMD.Parameters.AddWithValue("@VALOR", TXTVAL.Text)
            CMD.Parameters.AddWithValue("@IVA", TXTIVA.Text)
            CMD.Parameters.AddWithValue("@TOTAL", TXTTOT.Text)
            CN.Open()
            CMD.ExecuteNonQuery()
            CN.Close()
            MsgBox("REGISTRO GUARDADO")

    jueves, 14 de febrero de 2013 16:41
  • no eso de las comillas simples no es correcto

    solo define la query de forma adecuada

    Dim query As String = "INSERT INTO FACTURA(NUMERO,FECHA,NIT,NOMBRE,DIRECCION," & _
            "LOCAL,N_CONTRATO,VALOR,IVA,TOTAL) " & _
            "VALUES (@NUMERO,@FECHA,@NIT,@NOMBRE,@DIRECCION,@LOCAL,@N_CONTRATO,@VALOR,@IVA,@TOTAL)"

    ademas deberias respetar los tipos de datos, o sea si el cmapo fecha es detetime deberia ser

    CMD.Parameters.AddWithValue("'@FECHA'", Convert.ToDateTime(TXTFE.Text))

    si es numerico deberia ser

    CMD.Parameters.AddWithValue("@IVA", Convert.Totnt32( TXTIVA.Text))

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 14 de febrero de 2013 16:46
  • cuando coloco el & _ me sale subrayado el &  y si me posiciono con el mouse en este & dice que "se esperaba una expresión." 

    me puedes ayudar con el codigo pls

    jueves, 14 de febrero de 2013 16:51
  • como defines ese string ? porque es raro que el & _ no lo tomes su estas uniendo dos cadenas de texto


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 14 de febrero de 2013 17:02
  • bueno ya funciona esta parte ya cambie el codigo pero sigue saliendo este mensaje al momento de ejecutarlo el codigo es el siguiente para ver si hay algo mal ya lo verifique y me parece que esta correcto

     Dim query As String = "INSERT INTO FACTURA(NUMERO,FECHA,NIT,NOMBRE,DIRECCION," & _
             "LOCAL,N_CONTRATO,VALOR,IVA,TOTAL) " & _
             "VALUES (@NUMERO,@FECHA,@NIT,@NOMBRE,@DIRECCION,@LOCAL,@N_CONTRATO,@VALOR,@IVA,@TOTAL)"

            Dim CMD As New OleDb.OleDbCommand(query, CN)
            CMD.Parameters.AddWithValue("@NUMERO", TXTNUM.Text)
            CMD.Parameters.AddWithValue("'@FECHA'", Convert.ToDateTime(TXTFE.Text))
            CMD.Parameters.AddWithValue("@NIT", TXTNIT.Text)
            CMD.Parameters.AddWithValue("@NOMBRE", TXTNOM.Text)
            CMD.Parameters.AddWithValue("@DIRECCION", TXTDIR.Text)
            CMD.Parameters.AddWithValue("@LOCAL", TXTLOC.Text)
            CMD.Parameters.AddWithValue("@N_CONTRATO", TXTNC.Text)
            CMD.Parameters.AddWithValue("@VALOR", Convert.ToDouble(TXTVAL.Text))
            CMD.Parameters.AddWithValue("@IVA", Convert.ToDouble(TXTIVA.Text))
            CMD.Parameters.AddWithValue("@TOTAL", Convert.ToDouble(TXTTOT.Text))
            CN.Open()
            CMD.ExecuteNonQuery()
            CN.Close()
            MsgBox("REGISTRO GUARDADO")

    jueves, 14 de febrero de 2013 17:06
  • pero entonces cual seria el problema ? que error obtienes

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 14 de febrero de 2013 17:12
  • el error es al momento de ejecutar la linea

    CMD.EXECUTENONQUERY()

    "ERROR DE SINTAXIS EN LA INSTRUCCION INSERT INTO"

    no se que problema es ya que con tu ayuda organice el codigo y en otros formularios me funcionaba sin declarar parametros pero en este no funciona de ninguna forma 

    jueves, 14 de febrero de 2013 17:18
  • estos parametros

    CMD.Parameters.AddWithValue("@NUMERO", TXTNUM.Text)

    CMD.Parameters.AddWithValue("@N_CONTRATO", TXTNC.Text)

    en la tabla de que tipo son los campos ?

    ---

    aqui

    INTO FACTURA(NUMERO

    prueba dejar un espacio entre la palabra factura y el (

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 14 de febrero de 2013 17:22
  • estos campos son texto, y ya deje el espacio no se que pueda estar pasando con esta instrucción que es solo para esta tabla ya he revisado linea por linea colocando los atributos de los campos que sean numéricos en  Convert.ToInt32

     si puedes ayudarme con esto estaré agradecido

    jueves, 14 de febrero de 2013 17:44
  • no veo nada incorrecto

    podrias probar de escribir la query en una sola linea para ver si es algo de la union del string

    tambien podrias vlaidar si los nombres de los campos de la tabla estan correctos, si estan bien escritos

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta JUAN TOBON viernes, 15 de febrero de 2013 14:53
    jueves, 14 de febrero de 2013 17:48