none
Ayuda!!!! como eliminar registro de 2 tablas!!! RRS feed

  • Pregunta

  • resulta que sucede lo siguiente: tengo en un formulario un datagrid enlazado a una tabla y por otro lado  tengo textbox relacionados a otra tabla peron con un identificador que los relaciona a los 2, el cual coresponde a la concatenacion del rut del proveedor y el numero del documento, con ello lo que hago es una busqueda del registro, pero resulta que cuando queda solamente un registro en el datagridvie, y lo elimino, no elimina los registros del textbox, como puedo hacer aqui???

    martes, 8 de marzo de 2011 20:50

Respuestas

  • hola

    pero cuando haces esta operacion la aplicas desde un item del detalle o desde los datos del proveedor ?

    por ahi ayude si expopnes como estan diseñadas las tablas con als cuales trabajas

    pero basicamente seria realziar una query que recupere el id del proveedor de los items que eliminas y al final hacer esto mismo en la tabla de encabezado

    igual esto depende desde dodne lanzas la accion porque si es directo desde el encabezado podrias ahcerlo en cascada, primero eliminas los detalles de ese id de factura y luego eliminar el encabezado de la factura

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Miguel Oyarzo jueves, 10 de marzo de 2011 20:23
    miércoles, 9 de marzo de 2011 13:24

Todas las respuestas

  • pero resulta que cuando queda solamente un registro en el datagridvie, y lo elimino, no elimina los registros del textbox, como puedo hacer aqui???

    y eso, o sea hasta el datagridview veni bien la explciacion, cuando pusite lo del Textbox ahi si me perdi, si estas borrando tablas relacionadas como se relacion el grid con el textbox, algo ahi no cierra

    lo que tienes son registros de una tabla que puede tener relacion con otra, peor ojo porque puede eliminar registros hijos que tambien sean usados por otros en la tabla superior, lo cual tambien deberias validar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 8 de marzo de 2011 20:58
  • la verdad como esta parte del formulario es complicada me cuesta un poquito explicar bien la idea!!! pero sucede que guardo una compra en una tabla enlazada a un datagrid, al efectuar esto, puedo guardar en el registro varios tipos de productos, y genero un total que se guarda a una tabla almacenando los datos del proveedor y el total de la factura de compra, pero suponiendo que me equivoque en el ingreso o deseo eliminar la factura por completa, primero debo elimninar cada registro y al momento de quedar solamente un registro en el datagrid, que me elimine tambien el registro de la otra tabla donde almacene los datos del proveedor y el total de la factura, ya que mi idea, y por orden/formalidad no quiero que quede almacenado datos de proveedor y numero de factura pero sin productos en el datagrid...

     

    miércoles, 9 de marzo de 2011 13:14
  • hola

    pero cuando haces esta operacion la aplicas desde un item del detalle o desde los datos del proveedor ?

    por ahi ayude si expopnes como estan diseñadas las tablas con als cuales trabajas

    pero basicamente seria realziar una query que recupere el id del proveedor de los items que eliminas y al final hacer esto mismo en la tabla de encabezado

    igual esto depende desde dodne lanzas la accion porque si es directo desde el encabezado podrias ahcerlo en cascada, primero eliminas los detalles de ese id de factura y luego eliminar el encabezado de la factura

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Miguel Oyarzo jueves, 10 de marzo de 2011 20:23
    miércoles, 9 de marzo de 2011 13:24
  • hola

    usa skydrive para subir imagenes

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 9 de marzo de 2011 13:42
  • mira dentro eliminar que estaba usando puse un " if dvgcompradetalles.columncount etc..." creo que podria funcionar con eso!!!

    o ves algo que me pueda causar conflicto a futuro?

     

     

    Private Sub ELIMINARCOMPRA()
            Dim MENSAJE As Integer
            Dim Conn As New SqlClient.SqlConnection(ConnectionString)

            MENSAJE = MsgBox("¿Esta seguro que desea eliminar el Registro De La Compra?", vbOKCancel)

            If MENSAJE = 1 Then
                Try
                    Conn.Open()
                    Dim Cmd As New SqlClient.SqlCommand
                    Cmd.Connection = Conn
                    Cmd.CommandText = "Delete from compradetalle where CODIGOART=@CODIGOART"
                    Cmd.Parameters.AddWithValue("@CODIGOART", CODIGOPRODUCTOS.Text)
                    If DGVCOMPRADETALLES.ColumnCount = 1 Then
                        Cmd.CommandText = "Delete from PAGOFACT_PROVEEDORES where RUTDOCUM=@RUTDOCUM"
                        Cmd.Parameters.AddWithValue("@RUTDOCUM", RUTPRONUMDOC.Text)
                    End If

                    Dim Cont As Integer = 0
                    Cont = Cmd.ExecuteNonQuery

                    If Cont = 1 Then
                        MessageBox.Show("El Registro ha sido Eliminado")
                    Else
                        MessageBox.Show("No se pudo Eliminar")
                    End If
                Catch ex As Exception
                    MessageBox.Show("Excepcion :" & ex.ToString)
                Finally
                    If Conn.State = ConnectionState.Open Then Conn.Close()
                    Conn = Nothing
                End Try
            End If
        End Sub

    miércoles, 9 de marzo de 2011 13:45
  • Hola

    Seguro estás usando un esquema Maestro-Detalle, en Maestro va una tabla, y en Detalle otra tabla, y ambas tablas están ligadas por un campo común. Bueno, seleccionas primero la tabla Detalle (así mantienes la integridad referencial entre ambas tablas, caso contrario, podrías tener problemas con algún registro). Una vez seleccionado todos los registros de la tabla Detalle, le hacés un Delete a cada uno (aún no están dadas de baja físicamente de la tabla, lo será cuando utilices Update). Terminado con Detalle, haces lo mismo con la tabla Maestro, aquí seguro tendrás un solo registro, y uno o más en la de Detalle. En ambas tablas buscarás registros por el campo común que los une. Una vez hecho el Delete a ambas tablas, procedes a hacer un Update. Por favor, cuando usas más de una tabla, utiliza Transacción para evitar incongruencia en las registraciones. Los procedimientos para implementar todo esto depende si trabajas con datos tipados o no, de todos modos, al final logras iguales resultados. Creo que más profesional es como te lo está explicando Leandro, yo te paso la data de como procedo yo, por si te da alguna idea que te ayude.

    Gratos Salu2

    Bernardo Vecco

    miércoles, 9 de marzo de 2011 22:37