none
Eliminar en DataGridView a traves de un boton

    Question

  • Tengo un DataGridView donde cargo un pedido. Debajo del control tengo dos botones uno para cerrar el pedido y otro para borrar una línea seleccionada del DataGridView en el caso que el operador decida arrepentirse sobre ese producto. El borrado tambien se haría sobre los datos de la base de datos que almacena los pedidos. 
    Cómo sé sobre qué fila estoy parado del DataGridView ? y en el caso que desee extraer el Código del Producto para rastrearlo en la base y hacerlo desaparecer ? Yo se que en la segunda Columna del DataGridView cargo el código del producto. Si se en que fila estoy puedo sacar el código del producto.
    Saludos y gracias
    Wednesday, August 25, 2010 11:13 PM

Answers

  • hola

    para obtener la fila seleccionda podrias usar

    Dim row As DataGridViewRow = DataGridViewRow1.CurrentRow

    ojo porque sino hay ninguna activa el row sera Nothing, esto podrias validarlo

    para borrar de la db solo tomas el identificador de una de las celdas de la fila y procedes a realziar la query del DELETE

    Dim row As DataGridViewRow = DataGridViewRow1.CurrentRow

    If row Is Nothing Then

       Return

    End If

    Using cn As New SqlConnection("<conection string>")
        cn.Open()
       
        Dim query As String = "DELETE FROM NombreTabla WHERE id= @id"
       
        Dim cmd As New SqlCommand(query, cn)
        cmd.Parameters.AddWithValue("@id", CInt(row.Cells("nombrecol").Value))
           
        cmd.ExecuteNonQuery()
           
    End Using

     

    luego vulves a recargar la grilla completa pra reflejar el cambio

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Thursday, August 26, 2010 2:20 PM

All replies

  • dim fila as DataGridViewRow
    dim valor as string '(o el tipo que corresponda)

                        For Each fila In Me.datagridview1.SelectedRows
                            valor= fila.Cells(0).Value 'Recojo el valor de la celda que me interesa (0= primera columna)
                            borrar_registro_bbdd(valor)
                        Next

    public sub borrar_registro_bbdd(indice as ???)
                  ... procedimiento para borrar el registro de la bbdd
    end sub

    Salu2


    nunca te acostarás sin saber una cosa más
    Thursday, August 26, 2010 3:40 AM
  • hola

    para obtener la fila seleccionda podrias usar

    Dim row As DataGridViewRow = DataGridViewRow1.CurrentRow

    ojo porque sino hay ninguna activa el row sera Nothing, esto podrias validarlo

    para borrar de la db solo tomas el identificador de una de las celdas de la fila y procedes a realziar la query del DELETE

    Dim row As DataGridViewRow = DataGridViewRow1.CurrentRow

    If row Is Nothing Then

       Return

    End If

    Using cn As New SqlConnection("<conection string>")
        cn.Open()
       
        Dim query As String = "DELETE FROM NombreTabla WHERE id= @id"
       
        Dim cmd As New SqlCommand(query, cn)
        cmd.Parameters.AddWithValue("@id", CInt(row.Cells("nombrecol").Value))
           
        cmd.ExecuteNonQuery()
           
    End Using

     

    luego vulves a recargar la grilla completa pra reflejar el cambio

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Thursday, August 26, 2010 2:20 PM