none
update RRS feed

  • Pregunta

  • Me da error el siguiente codigo bastante largo, pero que le estoy cortando para poder analizar sin mucho grosor.

     Dim comando As New SqlCommand("update Pedidos set factura='" & Trim(TexNumero.Text) & "', fecha='" & fech & "', codcli='" & Convert.ToInt32(ComboCliente.SelectedValue) & "', condicion='" & ComboCondicion.Text & "', monto='" & Convert.ToString(TexNeto.Text) & "'&_
                          usuario='" & Entorno.Usuari & "'&_
                         where factura='" & Trim(TexNumero.Text) & "'", Conexion)

    Me da el siguiente error...

    Pero si le pongo coma delante de los delimitadores de lineas (&_) o sea, así (,&_) me da este error

    Tengo los ojos derrotados ya.

    domingo, 14 de enero de 2018 5:04

Respuestas

  • Hola:
    Cambia tu sentencia por esta

    Dim comando As New SqlCommand("update Pedidos set fecha='" & fech & "', codcli='" & Convert.ToString(ComboCliente.SelectedValue) & "', condicion='" & ComboCondicion.Text & "', monto='" & Convert.ToString(TexNeto.Text) & "', usuario='" & Entorno.Usuari & "'& " where factura='" & Trim(TexNumero.Text) & "'", Conexion)

    Como veras he quitado el modificar la factura ya es primary key porque esta en la parte del where

    ¿Porque no pones parametros al comando en vez de concatenar strings, te ahorraras derrotarte los ojos?
    Algo como esto

    Dim comando As New SqlCommand("update Pedidos set fecha=@Fecha, codcli=@CodCli, condicion=@Condicion, monto=@Monto, usuario=@Usuario where factura=@Factura, Conexion)
    comando.Parameters.Add(New SqlParameter("@Fecha", fech)
    comando.Parameters.Add(New SqlParameter("@CodCli", ComboCliente.SelectedValue)
    comando.Parameters.Add(New SqlParameter("@Condicion", ComboCondicion.Text)
    comando.Parameters.Add(New SqlParameter("@Monto", TexNeto.Text)
    comando.Parameters.Add(New SqlParameter("@Usuario", Entorno.Usuari)
    comando.Parameters.Add(New SqlParameter("@Factura", Trim(TexNumero.Text))

    Un saludo desde Bilbo
    Carlos
    domingo, 14 de enero de 2018 7:14

Todas las respuestas

  • Hola:
    Cambia tu sentencia por esta

    Dim comando As New SqlCommand("update Pedidos set fecha='" & fech & "', codcli='" & Convert.ToString(ComboCliente.SelectedValue) & "', condicion='" & ComboCondicion.Text & "', monto='" & Convert.ToString(TexNeto.Text) & "', usuario='" & Entorno.Usuari & "'& " where factura='" & Trim(TexNumero.Text) & "'", Conexion)

    Como veras he quitado el modificar la factura ya es primary key porque esta en la parte del where

    ¿Porque no pones parametros al comando en vez de concatenar strings, te ahorraras derrotarte los ojos?
    Algo como esto

    Dim comando As New SqlCommand("update Pedidos set fecha=@Fecha, codcli=@CodCli, condicion=@Condicion, monto=@Monto, usuario=@Usuario where factura=@Factura, Conexion)
    comando.Parameters.Add(New SqlParameter("@Fecha", fech)
    comando.Parameters.Add(New SqlParameter("@CodCli", ComboCliente.SelectedValue)
    comando.Parameters.Add(New SqlParameter("@Condicion", ComboCondicion.Text)
    comando.Parameters.Add(New SqlParameter("@Monto", TexNeto.Text)
    comando.Parameters.Add(New SqlParameter("@Usuario", Entorno.Usuari)
    comando.Parameters.Add(New SqlParameter("@Factura", Trim(TexNumero.Text))

    Un saludo desde Bilbo
    Carlos
    domingo, 14 de enero de 2018 7:14
  • Gracis J. Carlos.

    Estuve utilizando la solucion con parametros y en mi experiencia, pues era menos explicita que con la directa. La de parametros me gusta mas, pero en ese sentido me sorprendio. 

    Y tiene mucha logica lo de omitir factura por el primarykey, pero en este caso no lo es.

    Gracias.


    • Editado Formulaz5 domingo, 14 de enero de 2018 13:34
    domingo, 14 de enero de 2018 13:28