Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/03/2013, 23:55
alex8902
 
Fecha de Ingreso: marzo-2013
Mensajes: 1
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Update de una tabla en mysql con Visual Basic.net


Saludos, pues estoy de practicas en un municipio y pues estoy puliendo para entrarle a un proyecto y pues em he trabado con el update, pues no puedo actualizar los datos de la tabla por más comando que use. trabajo con procedimiento almacenado.

Procedimiento almacenado:

CREATE DEFINER = 'root'@'localhost' PROCEDURE `usp_update_productos`(
IN Codpro1 CHAR(6),
IN Nombre1 VARCHAR(50),
IN Categoria1 VARCHAR(30),
IN Stock1 INTEGER(8),
IN Precio1 DECIMAL(11,2),
IN Comentario1 VARCHAR(200)
)
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
update `producto` set Codpro=Codpro1, Nombre=Nombre1, Categoria=Categoria1, Stock=Stock1,
Precio=Precio1, Comentario=Comentario1 where Codpro=Codpro1;
END;

Lo que deseo es actualizar los campos excepto el código, pues creo que debo quitarle el "Codpro=Codpro1", pero bueno ya lo probe y no da resultado.

Este es el código de mi formulario al boton actualizar:

Private Sub btnActualizar_Click(sender As System.Object, e As System.EventArgs) Handles btnActualizar.Click
dat.actualizar_tabla_producto(txtcodpro.Text, txtnompro.Text, txtcategoria.Text, txtstock.Text, txtprecio.Text,
txtcomentario.Text)
Try
Dim Codpro1 As String
Dim Nombrepro1 As String
Dim Categoria1 As String
Dim Stock1 As Integer
Dim Precio1 As Decimal
Dim Comentario1 As String

Codpro1 = txtcodpro.Text
Nombrepro1 = txtnompro.Text
Categoria1 = txtcategoria.Text
Stock1 = txtstock.Text
Precio1 = txtprecio.Text
Comentario1 = txtcomentario.Text
MsgBox("Se ha actualizado correctamente el registro", MsgBoxStyle.Information, "Actualización de Datos")
Catch ex As Exception
MsgBox("Se ha actualizado erróneamente el registro", MsgBoxStyle.Critical, "ERROR Actualización de Datos")
End Try


End Sub

Y este es el código de mi clase

'ACTUALIZAR TABLA PRODUCTO
Public Function actualizar_tabla_producto(Codpro1 As String, Nombrepro1 As String, Categoria1 As String,
Stock1 As Integer, Precio1 As Decimal, Comentario1 As String) As Integer
Try
Dim cmd As New MySqlCommand("usp_update_productos", cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@Codpro1", Codpro1)
cmd.Parameters.AddWithValue("@Nombrepro1", Nombrepro1)
cmd.Parameters.AddWithValue("@Categoria1", Categoria1)
cmd.Parameters.AddWithValue("@Stock1", Stock1)
cmd.Parameters.AddWithValue("@Precio1", Precio1)
cmd.Parameters.AddWithValue("@Comentario1", Comentario1)

cn.Open()

Dim fls As Integer = cmd.ExecuteNonQuery
Return fls
Catch ex As Exception
Return 0
Finally
cn.Close()
End Try

End Function

Cabe aclarar que no me marca ningun error, pero no logra actualizar al contrario, a los campos que son decimales elimina la coma o punto decimal.

Espero vuestra ayuda.