Foros del Web » Programación para mayores de 30 ;) » .NET »

Eliminar fila en Datagrid

Estas en el tema de Eliminar fila en Datagrid en el foro de .NET en Foros del Web. Hola, tengo un problema a la hora de eliminar un registro de un datagrid y de la base de datos. El problema es cómo saber ...
  #1 (permalink)  
Antiguo 22/09/2005, 11:55
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
Eliminar fila en Datagrid

Hola, tengo un problema a la hora de eliminar un registro de un datagrid y de la base de datos.
El problema es cómo saber la clave de la fila según la fila q selecciono para poder pasarlo luego como procedimiento a un procedimiento eliminar. Tal como lo teníadatagrid.currentRowIndex, me almacena el índice del registro pero no el valor de la clave de ese registro y entonces si yo llevo ese currentRowIndex a la sql no me borra bien.
Cómo lo puedo hacer? muchas gracias.
  #2 (permalink)  
Antiguo 22/09/2005, 19:28
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Supongo que tenés varias formas de hacerlo. Una que se me ocurre es utilizar el mismo currentRowIndex para el dataset:

Dim Fila As DataRow = ds.Tables("tu_tabla").Rows(datagrid.currentRowInde x)
Dim Clave As Integer = Fila("Columna_Clave")

El problema de esto es que si alteras la fuente (datasource) del datagrid, por ejemplo por un dataview, esto dejaría de funcionar correctamente.
Por eso, yo generalmente lo hago de esta forma (si en el datagrid tenés una columna que contenga la clave):

Dim Clave As Integer = datagrid.Item(datagrid.CurrentRowIndex, [índice de la columna que contenga la clave])

Y ahí ya logras conseguir la clave.
Otra forma la verdad que no sé.
Espero que te haya servido de algo.
Suerte y saludos!.
__________________
Add, never Remove
  #3 (permalink)  
Antiguo 23/09/2005, 12:48
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
Muchas gracias, ya funciona :). Al final aunq no kiero mostrar esas columnas en el datagrid las cargué igual en el dataset para poder acceder a ellas.

Saludos.
  #4 (permalink)  
Antiguo 24/09/2005, 16:56
Avatar de royrojas  
Fecha de Ingreso: diciembre-2004
Mensajes: 458
Antigüedad: 19 años, 4 meses
Puntos: 3
aqui hay unos buenos ejemplos de manejo del datagrid
http://www.dotnetcr.com/index.aspx?I...=&key=datagrid
__________________
roy rojas
Programación en Español: DotNetcr.com
  #5 (permalink)  
Antiguo 09/11/2008, 17:43
 
Fecha de Ingreso: noviembre-2008
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Eliminar fila en Datagrid

HOLA, DISULPEN PERO SOY NUEVO EN ESTO, SOY UN ESTUDIANTE DE PROGRAMACION Y ESTOY HACIENDO UNA AGENDA..... UNA DE LAS DUDAS QUE TENGO QUE COMO PODER ELIMINAR UNA FILA DIRECTAMENTE DEL DATAGRIDVIEW, YA QUE ESTOY BORRANDO POR FECHA Y NO ME GUSTA COMO QUEDA, YA QUE COMO ES UNA AGENDA SE PUEDE INGRESAR VARIOS EVENBTOS PA UNA MISMA FECHA, ENTONCES SE ME OCURRIO SI SE PUEDE BORRAR LA FILA QUE EL USUARIO QUIERA DIRECTAMENTE DEL DATADRID...... COMO NO SE MUCHO DE ESTO NO ENTIENDO LAS RESPUESTA A LOS OTROS MENSAJE POR ESO ENVIARE EL CODIGO DEL FORMULARIO BORRAR QUE HICE....POR FAVOR SI ME PUEDEN EXPLICAR CON MMANZANAS ...JAJAJ GRACIAS
RL PRIMERO ES EL BOTON BORRAR.. QUE ESTA DIRIGIDO A LA FECHA INGRESADA PREVIAMENTE....
EL SEGUNDO ESTOY CARGANDO LOS DATOS EN EL DATAGRIVIEW EN EL FORMULARIO

Imports System.Data
Imports System.Data.SqlClient
Public Class FormBorrar


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


'la conexion a la BD
Dim miCon As New SqlConnection
miCon.ConnectionString = _
"Data Source=(local)\SQLEXPRESS;" & _
"Initial Catalog=AgendaMarco;" & _
"Integrated security=true"

'Probamos la conexion
miCon.Open()

'creamos un comando
Dim micomando As New SqlCommand

'le indicamos la conexion a utilizar
micomando.Connection = miCon

'ahora la sentencia sql para borrar
micomando.CommandText = _
"DELETE FROM AgendaMarco WHERE " & _
" Fecha='" & DateTimePicker1.Text & "'"



Dim mensaje As String
mensaje = MsgBox("Seguro que desea borrar", vbYesNo + vbQuestion, "Borrar")
If mensaje = vbYes Then
micomando.ExecuteNonQuery()
Else
MsgBox("No se ha borrado", MsgBoxStyle.Information, "Aviso")



End If

End Sub


Private Sub FormBorrar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'creamos un objeto connection
Dim miConn As New SqlConnection
miConn.ConnectionString = _
"Data source=(local)\SQLEXPRESS;" & _
"initial catalog=AgendaMarco;" & _
"integrated security=true"
'ABRIMOS LA CONECCION
miConn.Open()


'creamos un comando
Dim micomando As New SqlCommand

'le indiacmos cual es la conexion a utilizar
micomando.Connection = miConn

'le entregamos un comando sql
micomando.CommandText = _
"select * from AgendaMarco"

'creamos un dataadapter
Dim mida As New SqlDataAdapter

'ejecuta el comando
mida.SelectCommand = micomando

'creemos u ndata set
Dim mids As New DataSet

'llamemos al dataset por medio del dataadapter
mida.Fill(mids)

'mostramos los resultados de la consulta
DataGridView1.DataSource = mids
DataGridView1.DataMember = mids.Tables(0).ToString
End Sub

End Class
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:00.