none
Seguir error en instrucción sql RRS feed

  • Pregunta

  • Hola.

    Tengo una instruccion como esta en mi desarrollo.

    Dim comando As New SqlCommand("insert into Pedidos (codcli, factura, fecha, values (" + Convert.ToInt32(ComboCliente.SelectedValue) + "','" + Convert.ToInt32(TexNumero.Text) + "','" + fech + "','" + ComboCondicion.Text + "', Conexion)
    
    

    Y me da este error.

    Ya he probado poniendo los valores que estaban vacios o nulos en cero(0.0) o solo cero (0) y sigue igual.

    El caso es, que no me indica exactamente cual es el campo o variable o control que tiene el problema, con linq lo da, pero con este tipo de instrucciones no lo veo bien o simplemente no se buscar.

    Gracias por su luz.

    viernes, 12 de enero de 2018 0:52

Respuestas

  • El problema podría estar en alguna de las concatenaciones, que las intente tratar como sumas. Prueba a cambiar el operador suma ("+") por el operador "concatenar strings" ("&").

    Aparte de esto, un truco para depurar este tipo de problemas consiste en separar la sentencia en varias, es decir, primero meter en una variable cada una de las partes tales como Convert.ToInt32(loquesea), y luego en la sentencia "grande" usar las variables. Así, si la conversión da un error, se te para en la conversión concreta que dio el error.

    viernes, 12 de enero de 2018 8:00
  • Tienes un par de cosillas que revisar:

    1.- No es necesario hacer el convert.ToInt32 pues estas construyendo un string y los valores de los textbox ya son stirng.

    2.- Revisa cada tipo de datos en los campos codcli, factura y fecha (En ele rror te pone aque alñguno de lso campos es tipo double o asi)

    y asegurate de crear el insert into con el formato segun el tipo de datos por ejemplo

    supongamos que codcli es int, factura nvarchar(10) y fecha DAteTime

    (Suponemos que la Fecha esta en una vriable de tipo DateTime y es una fecha , el resto viene de dos textbox)

    el insert seria:

    "insert into pedidos (codcli, factura, fecha) values( " +

    txtCodCli.Text + "," +

    "'"+txtFactura.Text + "'" + ","

    "'" + fecha.ToString("yyyy-MM-dd hh:mm:ss") +"' )" 

    viernes, 12 de enero de 2018 8:11

Todas las respuestas

  • El problema podría estar en alguna de las concatenaciones, que las intente tratar como sumas. Prueba a cambiar el operador suma ("+") por el operador "concatenar strings" ("&").

    Aparte de esto, un truco para depurar este tipo de problemas consiste en separar la sentencia en varias, es decir, primero meter en una variable cada una de las partes tales como Convert.ToInt32(loquesea), y luego en la sentencia "grande" usar las variables. Así, si la conversión da un error, se te para en la conversión concreta que dio el error.

    viernes, 12 de enero de 2018 8:00
  • Tienes un par de cosillas que revisar:

    1.- No es necesario hacer el convert.ToInt32 pues estas construyendo un string y los valores de los textbox ya son stirng.

    2.- Revisa cada tipo de datos en los campos codcli, factura y fecha (En ele rror te pone aque alñguno de lso campos es tipo double o asi)

    y asegurate de crear el insert into con el formato segun el tipo de datos por ejemplo

    supongamos que codcli es int, factura nvarchar(10) y fecha DAteTime

    (Suponemos que la Fecha esta en una vriable de tipo DateTime y es una fecha , el resto viene de dos textbox)

    el insert seria:

    "insert into pedidos (codcli, factura, fecha) values( " +

    txtCodCli.Text + "," +

    "'"+txtFactura.Text + "'" + ","

    "'" + fecha.ToString("yyyy-MM-dd hh:mm:ss") +"' )" 

    viernes, 12 de enero de 2018 8:11