Búsqueda personalizada
Regístrate gratis para participar de los foros, o si ya estás registrado haz login.
| comentario del autor | Lun Sep 07, 2009 1:20 am | |
|
Estoy haciendo un sistema de control de inventario de un videoclub en visual basic 2005 y mysql, mis registros los guarda a la perfección pero si yo quiero modificar esos datos y doy clic al botón guardar modificación no me permite hacerlo, allí dejé mi código de guardar modificación en comentarios, espero me puedan ayudar a formular el código correcto, gracias. Imports MySql.Data.MySqlClient Imports System.Data Public Class rentadepeliculas Dim con As New MySqlConnection Dim ds As New DataSet Private Sub borrarcajas() tnocredencial.Text = "" tfolio.Text = "" dfecha.Value = Date.Now tnombre.Text = "" tdireccion.Text = "" ttelefono.Text = "" DataGridView1.Rows.Clear() DataGridView1.Rows.Add(10) tcantidadconletra.Text = "" tsubtotal.Text = "" tiva.Text = "" ttotal.Text = "" End Sub Private Sub habilitarcajas() tnocredencial.Enabled = True dfecha.Enabled = True DataGridView1.Enabled = True End Sub Private Sub deshabilitarcajas() tnocredencial.Enabled = False dfecha.Enabled = True DataGridView1.Enabled = False End Sub Private Sub rentadepeliculas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load con = New MySqlConnection("server=X;database=bdX;uid=X;pwd=XXXXX") con.Open() DataGridView1.Rows.Add(10) End Sub Private Sub lguardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lguardar.Click Dim cnrm As New MySqlDataAdapter Dim cnrd As New MySqlDataAdapter Dim dsrentas As New DataSet Dim filarentas As DataRow Dim sincrentas As New MySqlCommandBuilder Dim comrentas As New MySqlCommand cnrm = New MySqlDataAdapter("select * from rentadepeliculas_maestro order by Folio;", con) cnrm.Fill(dsrentas, "rentadepeliculas_maestro") sincrentas = New MySqlCommandBuilder(cnrm) If tnocredencial.Text = "" Then MsgBox("Es necesario que ingrese el número de credencial.", MsgBoxStyle.Information, "Operación cancelada.") Exit Sub End If For i As Integer = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Rows(i).Cells(0).Value = "" And DataGridView1.Rows(i).Cells(4).Value = "" And DataGridView1.Rows(i).Cells(5).Value = "" And tcantidadconletra.Text = "" And tsubtotal.Text = "" And tiva.Text = "" And ttotal.Text = "" Then MsgBox("No puede realizar un registro de renta con campos en blanco.", MsgBoxStyle.Information, "Operación cancelada.") Exit Sub End If Next If dsrentas.Tables("rentadepeliculas_maestro").Rows.Count > 0 Then filarentas = dsrentas.Tables("rentadepeliculas_maestro").Rows(dsrentas.Tables("rentadepeliculas_maestro").Rows.Count - 1) tfolio.Text = Val(filarentas("Folio")) + 1 Else tfolio.Text = "1" End If filarentas = dsrentas.Tables("rentadepeliculas_maestro").NewRow filarentas("No_credencial") = tnocredencial.Text filarentas("Folio") = tfolio.Text filarentas("Fecha") = dfecha.Text filarentas("Nombre") = tnombre.Text filarentas("Direccion") = tdireccion.Text filarentas("Telefono") = ttelefono.Text filarentas("Cantidad_letra") = tcantidadconletra.Text filarentas("Subtotal") = Val(tsubtotal.Text) filarentas("Iva") = Val(tiva.Text) filarentas("Total") = Val(ttotal.Text) dsrentas.Tables("rentadepeliculas_maestro").Rows.Add(filarentas) cnrm.Update(dsrentas.Tables("rentadepeliculas_maestro")) dsrentas.AcceptChanges() cnrd = New MySqlDataAdapter("select * from rentadepeliculas_detalle order by Num;", con) cnrd.Fill(dsrentas, "rentadepeliculas_detalle") sincrentas = New MySqlCommandBuilder(cnrd) For i As Integer = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Rows(i).Cells(1).Value <> "" Then filarentas = dsrentas.Tables("rentadepeliculas_detalle").NewRow filarentas("Folio") = tfolio.Text filarentas("Ean") = DataGridView1.Rows(i).Cells(0).Value filarentas("Titulo") = DataGridView1.Rows(i).Cells(1).Value filarentas("Formato") = DataGridView1.Rows(i).Cells(2).Value filarentas("Contenido") = CDbl(DataGridView1.Rows(i).Cells(3).Value) filarentas("Precio") = CDbl(DataGridView1.Rows(i).Cells(4).Value) filarentas("Copias") = CDbl(DataGridView1.Rows(i).Cells(5).Value) filarentas("Importe") = CDbl(DataGridView1.Rows(i).Cells(6).Value) dsrentas.Tables("rentadepeliculas_detalle").Rows.Add(filarentas) cnrd.Update(dsrentas.Tables("rentadepeliculas_detalle")) dsrentas.AcceptChanges() End If Next deshabilitarcajas() lnuevo.Enabled = True lguardar.Enabled = False limprimir.Enabled = True lbuscar.Enabled = True lmodificar.Enabled = True lguardarmodificacion.Enabled = False leliminar.Enabled = False lcancelar.Enabled = False End Sub Private Sub lbuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbuscar.Click Dim cnrentas As New MySqlDataAdapter Dim dsrent As New DataSet Dim filarent As DataRow Dim x As String x = InputBox("Introduzca el número de folio que desea buscar.") If x = "" Then Exit Sub cnrentas = New MySqlDataAdapter("select * from rentadepeliculas_maestro where Folio = " & x & ";", con) cnrentas.Fill(dsrent, "rentadepeliculas_maestro") If dsrent.Tables("rentadepeliculas_maestro").Rows.Count > 0 Then filarent = dsrent.Tables("rentadepeliculas_maestro").Rows(0) tnocredencial.Text = filarent("No_credencial") tfolio.Text = filarent("Folio") dfecha.Text = filarent("Fecha") tnombre.Text = filarent("Nombre") tdireccion.Text = filarent("Direccion") ttelefono.Text = filarent("Telefono") tcantidadconletra.Text = filarent("Cantidad_letra") tsubtotal.Text = filarent("Subtotal") tiva.Text = filarent("Iva") ttotal.Text = filarent("Total") Else MsgBox("Folio no encontrado.", MsgBoxStyle.Information, "Operación cancelada.") borrarcajas() lnuevo.Enabled = True lguardar.Enabled = False limprimir.Enabled = False lbuscar.Enabled = True lmodificar.Enabled = False lguardarmodificacion.Enabled = False leliminar.Enabled = False lcancelar.Enabled = False Exit Sub dsrent.Clear() dsrent.Dispose() cnrentas.Dispose() End If DataGridView1.Rows.Clear() DataGridView1.Rows.Add(10) cnrentas = New MySqlDataAdapter("select * from rentadepeliculas_detalle where Folio =" & x & ";", con) cnrentas.Fill(dsrent, "rentadepeliculas_detalle") If dsrent.Tables("rentadepeliculas_detalle").Rows.Count > 0 Then For i As Integer = 0 To dsrent.Tables("rentadepeliculas_detalle").Rows.Count - 1 filarent = dsrent.Tables("rentadepeliculas_detalle").Rows(i) DataGridView1.Rows(i).Cells(0).Value = filarent("Ean") DataGridView1.Rows(i).Cells(1).Value = filarent("Titulo") DataGridView1.Rows(i).Cells(2).Value = filarent("Formato") DataGridView1.Rows(i).Cells(3).Value = filarent("Contenido") DataGridView1.Rows(i).Cells(4).Value = filarent("Precio") DataGridView1.Rows(i).Cells(5).Value = filarent("Copias") DataGridView1.Rows(i).Cells(6).Value = filarent("Importe") lnuevo.Enabled = False lguardar.Enabled = False limprimir.Enabled = True lbuscar.Enabled = True lmodificar.Enabled = True lguardarmodificacion.Enabled = False leliminar.Enabled = True lcancelar.Enabled = True Next End If dsrent.Clear() dsrent.Dispose() cnrentas.Dispose() End Sub Private Sub lmodificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lmodificar.Click habilitarcajas() tnocredencial.Focus() lnuevo.Enabled = False lguardar.Enabled = False limprimir.Enabled = False lbuscar.Enabled = False lmodificar.Enabled = False lguardarmodificacion.Enabled = True leliminar.Enabled = False lcancelar.Enabled = True End Sub Private Sub lguardarmodificacion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lguardarmodificacion.Click 'Dim cnrm As New MySqlDataAdapter 'Dim cnrd As New MySqlDataAdapter 'Dim dsrentas As New DataSet 'Dim filarentas As DataRow 'Dim sincrentas As New MySqlCommandBuilder 'Dim comrentas As New MySqlCommand 'cnrm = New MySqlDataAdapter("select * from rentadepeliculas_maestro order by Folio;", con) 'cnrm.Fill(dsrentas, "rentadepeliculas_maestro") 'sincrentas = New MySqlCommandBuilder(cnrm) 'filarentas = dsrentas.Tables("rentadepeliculas_maestro").NewRow 'filarentas.BeginEdit() 'filarentas("No_credencial") = tnocredencial.Text 'filarentas("Folio") = tfolio.Text 'filarentas("Fecha") = dfecha.Text 'filarentas("Nombre") = tnombre.Text 'filarentas("Direccion") = tdireccion.Text 'filarentas("Telefono") = ttelefono.Text 'filarentas("Cantidad_letra") = tcantidadconletra.Text 'filarentas("Subtotal") = Val(tsubtotal.Text) 'filarentas("Iva") = Val(tiva.Text) 'filarentas("Total") = Val(ttotal.Text) 'filarentas.EndEdit() 'cnrm.Update(dsrentas.Tables("rentadepeliculas_maestro")) 'dsrentas.AcceptChanges() 'cnrd = New MySqlDataAdapter("select * from rentadepeliculas_detalle order by Num;", con) 'cnrd.Fill(dsrentas, "rentadepeliculas_detalle") 'sincrentas = New MySqlCommandBuilder(cnrd) 'For i As Integer = 0 To DataGridView1.Rows.Count - 1 ' If DataGridView1.Rows(i).Cells(1).Value <> "" Then ' filarentas = dsrentas.Tables("rentadepeliculas_detalle").NewRow ' filarentas.BeginEdit() ' filarentas("Folio") = tfolio.Text ' filarentas("Ean") = DataGridView1.Rows(i).Cells(0).Value ' filarentas("Titulo") = DataGridView1.Rows(i).Cells(1).Value ' filarentas("Formato") = DataGridView1.Rows(i).Cells(2).Value ' filarentas("Contenido") = CDbl(DataGridView1.Rows(i).Cells(3).Value) ' filarentas("Precio") = CDbl(DataGridView1.Rows(i).Cells(4).Value) ' filarentas("Copias") = CDbl(DataGridView1.Rows(i).Cells(5).Value) ' filarentas("Importe") = CDbl(DataGridView1.Rows(i).Cells(6).Value) ' filarentas.EndEdit() ' cnrm.Update(dsrentas.Tables("rentadepeliculas_detalle")) ' dsrentas.AcceptChanges() ' End If 'Next 'deshabilitarcajas() 'lnuevo.Enabled = True 'lguardar.Enabled = False 'limprimir.Enabled = True 'lbuscar.Enabled = True 'lmodificar.Enabled = True 'lguardarmodificacion.Enabled = False 'leliminar.Enabled = False 'lcancelar.Enabled = False End Sub Private Sub tnocredencial_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tnocredencial.KeyPress Dim cncliente As New MySqlDataAdapter Dim dscliente As New DataSet Dim filacliente As DataRow ''If Asc(e.KeyChar) = Keys.Return Then If Asc(e.KeyChar) = 13 Then cncliente = New MySqlDataAdapter("select Nombres, Apellido_paterno, Apellido_materno, Colonia, Calle, Ciudad, Telefono from registrodeclientes where No_credencial='" & tnocredencial.Text & "';", con) cncliente.Fill(dscliente, "registrodeclientes") If dscliente.Tables("registrodeclientes").Rows.Count > 0 Then filacliente = dscliente.Tables("registrodeclientes").Rows(0) tnombre.Text = filacliente("Nombres") & " " & filacliente("Apellido_paterno") & " " & filacliente("Apellido_materno") tdireccion.Text = filacliente("Colonia") & " " & filacliente("Calle") & " " & filacliente("Ciudad") ttelefono.Text = filacliente("Telefono") Else MsgBox("Cliente no encontrado.", MsgBoxStyle.Information, "Búsqueda de clientes.") tnocredencial.Text = "" tnombre.Text = "" tdireccion.Text = "" ttelefono.Text = "" End If dscliente.Clear() dscliente.Dispose() cncliente.Dispose() 'dscliente.Tables("registrodeclientes").Clear() End If End Sub Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit Dim cnpel As New MySqlDataAdapter Dim dspel As New DataSet Dim filapel As DataRow Dim ean As String Dim precio As Double Dim copias As Double Dim vsubt As Double = 0 Dim vean As String = "" Dim vlinea As Integer Select Case e.ColumnIndex Case 0 vean = DataGridView1.CurrentCell.Value vlinea = DataGridView1.CurrentRow.Index For i As Integer = 0 To DataGridView1.Rows.Count - 1 If vean = DataGridView1.Rows(i).Cells(0).Value And i <> vlinea Then MsgBox("No puede introducir un mismo ean.", MsgBoxStyle.Information, "Operación cancelada.") DataGridView1.CurrentCell.Value = "" SendKeys.Send("{up}") Exit Sub End If Next ean = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(0).Value cnpel = New MySqlDataAdapter("select Titulo, Formato, Contenido from registrodepeliculas where Ean='" & ean & "';", con) cnpel.Fill(dspel, "regpeliculas") If dspel.Tables("regpeliculas").Rows.Count > 0 Then filapel = dspel.Tables("regpeliculas").Rows(0) DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(1).Value = filapel("titulo") DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(2).Value = filapel("formato") DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(3).Value = filapel("contenido") Else DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(1).Value = "" End If dspel.Clear() dspel.Dispose() cnpel.Dispose() SendKeys.Send("{up}") SendKeys.Send("{tab}") SendKeys.Send("{tab}") SendKeys.Send("{tab}") SendKeys.Send("{tab}") Case 4 copias = CDbl(DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(4).Value) If copias > 0 Then SendKeys.Send("{up}") SendKeys.Send("{tab}") Else SendKeys.Send("{up}") End If Case 5 precio = CDbl(DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(4).Value) copias = CDbl(DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(5).Value) If precio > 0 And copias > 0 Then DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(6).Value = precio * copias For i As Integer = 0 To DataGridView1.Rows.Count - 1 vsubt = vsubt + CDbl(DataGridView1.Rows(i).Cells(6).Value) Next tsubtotal.Text = vsubt tiva.Text = vsubt * 0.15 ttotal.Text = CDbl(tsubtotal.Text) + CDbl(tiva.Text) SendKeys.Send("{up}") SendKeys.Send("{tab}") SendKeys.Send("{tab}") End If End Select End Sub End Class |
||