none
error en consulta

    Pregunta

  • Buenas Tardes.

    Tengo el siguiente código para actualizar los datos de un formulario.

    Private Sub Actualizar()

            Try
                Using cmd As New OleDbCommand()

                    ' Creamos la consulta Update
                    cmd.CommandText = _
                        "UPDATE ArticulosMondial " & _
                        "SET Nombre=?," & _
                        "CodMarca=?," & _
                        "CodIva=?," & _
                        "CodFamilia=?," & _
                        "Precio=?," & _
                        "AmpliacionDescripcion=?," & _
                        "PrecioMaterial=?" &
                        "WHERE CodArticulo=?"

                    With cmd.Parameters
                        cmd.Parameters.AddWithValue("", NombreTextBox.Text)
                        cmd.Parameters.AddWithValue("", CodMarcaTextBox.Text)
                        cmd.Parameters.AddWithValue("", CodIvaTextBox.Text)
                        cmd.Parameters.AddWithValue("", CodFamiliaTextBox.Text)
                        cmd.Parameters.AddWithValue("", PrecioTextBox.Text)
                        cmd.Parameters.AddWithValue("", AmpliacionDescripcionTextBox.Text)
                        cmd.Parameters.AddWithValue("", PrecioMaterialTextBox.Text)
                        cmd.Parameters.AddWithValue("", CodArticuloTextBox.Text)
                    End With

                    ' Ejecutamos la consulta
                    '
                    ExecuteAction(cmd)
                    MessageBox.Show(" Articulo Modificado ")
                    bloquear_textbox()
                    'limpiar()

                End Using

            Catch ex As Exception
                Throw

            End Try

        End Sub

    El error que me da es el siguiente:

    No se han especificado valores para algunos de los parámetros requeridos.

    Estoy buscando por donde viene el problema pero no lo encuentro, la base de datos es en Access

    Un saludo y gracias.


    jose soler

    domingo, 15 de abril de 2012 17:51

Respuestas

  • Bueno cambie el código conforme me indicaste pero ahora me da error de sintaxis en la expresión de consulta ‘@PrecioMateriaWHERE CodArticulo=@CodArticulo

    olvide dejar un espacio en el string

    en esta linea

    " WHERE CodArticulo=@CodArticulo"

    deja un espacio delante del WHERE


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta barxeta-1 domingo, 15 de abril de 2012 19:55
    domingo, 15 de abril de 2012 19:51

Todas las respuestas

  • no has intentado usando

                   cmd.CommandText = _
                        "UPDATE ArticulosMondial " & _
                        "SET Nombre=@nombre," & _
                        "CodMarca=@marca," & _
                        "CodIva=@iva," & _
                        "CodFamilia=@familia," & _
                        "Precio=@precio," & _
                        "AmpliacionDescripcion=@desc," & _
                        "PrecioMaterial=@preciomat" &
                        "WHERE CodArticulo=@cod"
    
                    With cmd.Parameters
                        cmd.Parameters.AddWithValue("@nombre", NombreTextBox.Text)
                        cmd.Parameters.AddWithValue("@marca", CodMarcaTextBox.Text)
                        cmd.Parameters.AddWithValue("@iva", CodIvaTextBox.Text)
                        cmd.Parameters.AddWithValue("@familia", CodFamiliaTextBox.Text)
                        cmd.Parameters.AddWithValue("@precio", PrecioTextBox.Text)
                        cmd.Parameters.AddWithValue("@desc", AmpliacionDescripcionTextBox.Text)
                        cmd.Parameters.AddWithValue("@preciomat", PrecioMaterialTextBox.Text)
                        cmd.Parameters.AddWithValue("@cod", CodArticuloTextBox.Text)
                    End With

    ademas recuerda validar los tipos de datos, por ejemplo si en la taba de la db el precio es numerico recuerda convertir al tipo correcto

    cmd.Parameters.AddWithValue("@precio", Convert.ToDecimal(PrecioTextBox.Text))

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    domingo, 15 de abril de 2012 18:08
  • Holas leandro, Gracias de nuevo.

    Hola Leandro.

    No se me había ocurrió, como siempre hay que ponerle las cosas lo mas fácil posible a visual.

    Bueno cambie el código conforme me indicaste pero ahora me da error de sintaxis en la expresión de consulta ‘@PrecioMateriaWHERE CodArticulo=@CodArticulo

    Así es como quedo:

    cmd.CommandText = _
                     "UPDATE ArticulosMondial " & _
                     "SET Nombre=@Nombre," & _
                     "CodMarca=@CodMarca," & _
                     "CodIva=@CodIva," & _
                     "CodFamilia=@CodFamilia," & _
                     "Precio=@Precio," & _
                     "AmpliacionDescripcion=@AmpliacionDescripcion," & _
                     "PrecioMaterial=@PrecioMaterial" &
                     "WHERE CodArticulo=@CodArticulo"

                    With cmd.Parameters
                        cmd.Parameters.AddWithValue("@Nombre", NombreTextBox.Text)
                        cmd.Parameters.AddWithValue("@CodMarca", CodMarcaTextBox.Text)
                        cmd.Parameters.AddWithValue("@CodIva", CodIvaTextBox.Text)
                        cmd.Parameters.AddWithValue("@CodFamilia", CodFamiliaTextBox.Text)
                        cmd.Parameters.AddWithValue("@Precio", PrecioTextBox.Text)
                        cmd.Parameters.AddWithValue("@AmpliacionDescripcion", AmpliacionDescripcionTextBox.Text)
                        cmd.Parameters.AddWithValue("@PrecioMaterial", PrecioMaterialTextBox.Text)
                        cmd.Parameters.AddWithValue("@CodArticulo", CodArticuloTextBox.Text)
                    End With

    Gracias de nuevo por tu tiempo.

    Un saludo.


    jose soler

    domingo, 15 de abril de 2012 19:28
  • Bueno cambie el código conforme me indicaste pero ahora me da error de sintaxis en la expresión de consulta ‘@PrecioMateriaWHERE CodArticulo=@CodArticulo

    olvide dejar un espacio en el string

    en esta linea

    " WHERE CodArticulo=@CodArticulo"

    deja un espacio delante del WHERE


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta barxeta-1 domingo, 15 de abril de 2012 19:55
    domingo, 15 de abril de 2012 19:51
  • Gracias Leandro, despues de mucho codigo parece mentira que no me diera cuenta.

    Un saludo y gracias


    jose soler

    domingo, 15 de abril de 2012 19:55