Borrar Registro de un DATAGRIDVIEW

31/03/2006 - 18:09 por Fernando Velarde | Informe spam
Hola otra ves peleando con el DataGridView , quiero borrar un registro,
primero seleccionar el registo, y luego eliminar precioando la tecla
Suprimir, y lo actualize la tabla, tengo el sgte. codigo para llenar el
Grid:
Dim strSQl As String = "SELECT id_p, Partida, Detalle , Gestion FROM
presupuesto WHERE gestion = " & 2006



Dim data_adapter As MySqlDataAdapter

data_adapter = New MySqlDataAdapter(strSQL, myConnection)

data_adapter.TableMappings.Add("Table", "Facturas")

m_DataSet = New DataSet()

data_adapter.Fill(m_DataSet)



DGPartidas.DataSource = m_DataSet.Tables(0).DefaultView



Gracias,

Saludos,

FERNANDO
 

Leer las respuestas

#1 Luis Miguel Blanco
05/04/2006 - 00:19 | Informe spam
Hola Fernando

Para eliminar registros de esta manera que comentas, necesitas escribir un
método manejador del evento KeyDown del control DataGridView, en el que
compruebes qué tecla se ha pulsado, y en el caso de que sea Suprimir,
obtienes la fila del grid, y a través de esta, el número de fila
correspondiente a la colección de filas del DataTable subyacente al control
grid; dicho número será el que usemos para borrar la fila de la tabla
asociada al grid.

Finalmente, mediante el método Update del objeto DataAdapter, actualizaremos
la base de datos con el contenido del grid.

Te adjunto un bloque de código con un ejemplo de este caso que te comento.

'//////////////////////////////////////
Imports System.Data.SqlClient

Public Class Form1
Private oConexion As SqlConnection
Private oDataSet As DataSet
Private oAdaptador As SqlDataAdapter

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
oConexion = New SqlConnection("Data Source=localhost;Initial
Catalog=PRUEBA;Integrated Security=True")

Dim oComando As SqlCommand = New SqlCommand()
oComando.Connection = oConexion
oComando.CommandText = "SELECT * FROM Personas"

oAdaptador = New SqlDataAdapter(oComando)

Dim oCmdBuilder As SqlCommandBuilder = New
SqlCommandBuilder(oAdaptador)

oDataSet = New DataSet

oConexion.Open()
oAdaptador.Fill(oDataSet, "Personas")
oConexion.Close()

Me.DataGridView1.DataSource = oDataSet
Me.DataGridView1.DataMember = "Personas"
End Sub

Private Sub DataGridView1_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
Dim nFila As Integer
Dim oCelda As DataGridViewCell

If e.KeyCode = Keys.Delete Then
oCelda = Me.DataGridView1.CurrentRow.Cells("IDPersona")
nFila = oCelda.RowIndex
oDataSet.Tables("Personas").Rows(nFila).Delete()
End If

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
oConexion.Open()
oAdaptador.Update(oDataSet, "Personas")
oConexion.Close()
End Sub
End Class
'/////////////////////////////////////

Espero que te sea de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Fernando Velarde" wrote:

Hola otra ves peleando con el DataGridView , quiero borrar un registro,
primero seleccionar el registo, y luego eliminar precioando la tecla
Suprimir, y lo actualize la tabla, tengo el sgte. codigo para llenar el
Grid:
Dim strSQl As String = "SELECT id_p, Partida, Detalle , Gestion FROM
presupuesto WHERE gestion = " & 2006



Dim data_adapter As MySqlDataAdapter

data_adapter = New MySqlDataAdapter(strSQL, myConnection)

data_adapter.TableMappings.Add("Table", "Facturas")

m_DataSet = New DataSet()

data_adapter.Fill(m_DataSet)



DGPartidas.DataSource = m_DataSet.Tables(0).DefaultView



Gracias,

Saludos,

FERNANDO



Preguntas similares