none
Imagen no actualiza VB,net

    Pregunta

  • Hola nuevamnete, ahora tengo un problema nuevo que me esta que saca humo de la cabeza, tengo este código:

    Procedure en SQL:

    CREATE PROCEDURE EditarProducto
    @id_prod char(9),
    @id_marca int,
    @id_tipo_prod int,
    @nomb_prod varchar(47),
    @stock_max_prod int,
    @stock_min_prod int,
    @stock_actual_prod int,
    @prec_lista_prod decimal(6,2),
    @prec_vta_prod decimal(6,2),
    @prec_costo_prod decimal(6,2),
    @id_mod int,
    @id_color int,
    @id_prov char(7),
    @FotoProducto image
    As
    UPDATE Producto set
    id_prod=@id_prod,
    id_marca=@id_marca,
    id_tipo_prod=@id_tipo_prod,
    nomb_prod=@nomb_prod,
    stock_max_prod=@stock_max_prod, 
    stock_min_prod=@stock_min_prod,
    stock_actual_prod=@stock_actual_prod,
    prec_lista_prod=@prec_lista_prod,
    prec_vta_prod=@prec_vta_prod,
    prec_costo_prod=@prec_costo_prod,
    id_mod=@id_mod,
    id_color=@id_color,
    id_prov=@id_prov,
    FotoProducto=@FotoProducto
    Where
    id_prod=@id_prod
    GO

    Constructor:

     Private _foto As Byte()


        Public Property foto As Byte()
            Get
                Return _foto
            End Get
            Set(value As Byte())
                _foto = value

            End Set
        End Property

    En una Clase DAO:

        Public Sub EditarProducto(ByVal editprod As ModelControler.Producto)
            cn.Open()
            cmd = New SqlCommand("EditarProducto", cn)
            cmd.CommandType = CommandType.StoredProcedure
            With cmd.Parameters
                .AddWithValue("@id_prod", editprod.idproducto)
                .AddWithValue("@id_marca", editprod.idmarca)
                .AddWithValue("@id_tipo_prod", editprod.idtipoproduct)
                .AddWithValue("@nomb_prod", editprod.nombreprod)
                .AddWithValue("@stock_max_prod", editprod.stockmax)
                .AddWithValue("@stock_min_prod", editprod.stockmin)
                .AddWithValue("@stock_actual_prod", editprod.stockactual)
                .AddWithValue("@prec_lista_prod", editprod.preciolista)
                .AddWithValue("@prec_vta_prod", editprod.preciventa)
                .AddWithValue("@prec_costo_prod", editprod.preciocostoprod)
                .AddWithValue("@id_mod", editprod.idmodelo)
                .AddWithValue("@id_color", editprod.idcolor)
                .AddWithValue("@id_prov", editprod.idproovedor)
                .AddWithValue("@FotoProducto", editprod.fotografia)
            End With
            cmd.ExecuteNonQuery()
            cn.Close()
            MsgBox("Registro actualizado", vbInformation)
        End Sub

    En mi boton EDITAR:

        Private Sub btn_Modificar2_Click(sender As Object, e As EventArgs) Handles btn_Modificar2.Click
            Quest = MsgBox("Desea modificar el registro?", vbYesNo + vbQuestion, "Consulta")
            If Quest = vbYes Then

                producto.idproducto = txt_id_prod.Text
                producto.idmarca = cbo_id_marca.SelectedValue
                producto.idproducto = cbo_id_tipo_prod.SelectedValue
                producto.nombreprod = txt_nomb_prod.Text
                producto.stockmax = txt_stock_max_prod.Text
                producto.stockmin = txt_stock_min_prod.Text
                producto.stockactual = txt_stock_actual_prod.Text
                producto.preciolista = txt_prec_lista_prod.Text
                producto.preciventa = txt_prec_vta_prod.Text
                producto.preciocostoprod = txt_prec_costo_prod.Text
                producto.idmodelo = cbo_id_mod.SelectedValue
                producto.idcolor = cbo_id_color.SelectedValue
                producto.idproovedor = cbo_id_prov.SelectedValue

                Dim ms As New MemoryStream
                Me.pic_Fotografia.Image.Save(ms, Me.pic_Fotografia.Image.RawFormat)

                producto.fotografia = ms.GetBuffer

                productoDAO.EditarProducto(producto)
                dgv_Producto.DataSource = productoDAO.ConsultaProducto()
            ElseIf Quest = vbNo Then
                'nada
            End If
            Inhabilitar()
            btn_Modificar2.Visible = False
        End Sub

    El detalle de todo este laaaaaaaaargo código, es que no me logra editar ningún campo, me muestra el mensaje que se actualizo, pero no edita nada, que estoy haciendo mal? espero puedan ayudarme, gracias. 


    Juan Fernando


    domingo, 9 de octubre de 2016 11:06

Respuestas

  • Si ya lo solucione, el problema era una subfuncion que generaba un autocodigo pero en verdad no se porque nno me permitia actualizar, y al desactivarlo la magia se hizo XDXD igual gracias...tema cerrado. 


    Juan Fernando

    domingo, 9 de octubre de 2016 13:06

Todas las respuestas

  • Así a simple vista tiene toda la pinta de estar bien. Cuando eso sucede, y el programa no funciona pero no se ve a simple vista qué puede estar mal en el código, es el momento de usar las herramientas de depuración. En Visual Studio, pon un punto de ruptura y sigue la ejecución paso a paso examinando los valores de las variables a ver si todas tienen en cada momento el valor que esperabas que tuviesen. Y si en Visual Studio todo parece estar bien, captura con el Profiler de SQL Server la llamada al procedimiento almacenado, a ver qué le está llegando. SI es necesario, copia la llamada completa en el Profiler y pégala en SSMS y ejecútala a mano, lo cual te permitirá examinar su comportamiento y experimentar con los parámetros.

    Por ejemplo, una cosa que a veces pasa y que no es obvia al ver el código fuente pero sí al examinar las variables con el depurador es que el ID que pasas en el Where del Update no tiene el valor correcto. Entonces la sentencia Update retorna perfectamente sin dar ningún error, pero no graba nada porque el Where no se cumple. No digo que te esté pasando precisamente eso, es solo un ejemplo de algo que se detectaría con el debugger pero no sería obvio mirando el código fuente.

    domingo, 9 de octubre de 2016 12:32
  • Si ya lo solucione, el problema era una subfuncion que generaba un autocodigo pero en verdad no se porque nno me permitia actualizar, y al desactivarlo la magia se hizo XDXD igual gracias...tema cerrado. 


    Juan Fernando

    domingo, 9 de octubre de 2016 13:06