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

Recorrer todas las celdas de un Datagridview

Estas en el tema de Recorrer todas las celdas de un Datagridview en el foro de .NET en Foros del Web. Desde ya les doy las gracias a todos, mi pregunta es la siguiente tengo un datagridview y quiero recorrer todas sus celdas ya que cada ...
  #1 (permalink)  
Antiguo 15/10/2010, 11:07
 
Fecha de Ingreso: octubre-2010
Mensajes: 5
Antigüedad: 14 años, 2 meses
Puntos: 0
Recorrer todas las celdas de un Datagridview

Desde ya les doy las gracias a todos, mi pregunta es la siguiente tengo un datagridview y quiero recorrer todas sus celdas ya que cada una es un insert en mi bd idependiente lo he tradado de hacer con el siguiente trozo de codigo

Dim i As Integer = 0
Dim celda As String
Dim dgc As DataGridViewCell
Dim j As Integer




While i < DataGridView1.Rows.Count
While j < DataGridView1.Columns.Count
dgc = DataGridView1.Rows(i).Cells(j)
celda = (CType(dgc.Value, String)) & "" & vbCrLf & ""
'celda = dgc.Value
MsgBox(celda)
j = j + 1
End While
i = i + 1
End While


pero puedo recorrer toda la primera fila pero al salir del bucle interno se sale tambien del primer bucle que es para recorrer las filas.
espero que se haya entendido.
Saludos
  #2 (permalink)  
Antiguo 15/10/2010, 11:40
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 10 meses
Puntos: 37
Respuesta: Recorrer todas las celdas de un Datagridview

Trata con lo siguiente:

Código vb:
Ver original
  1. For Renglones As Integer = 0 To DataGridView1.RowCount - 1
  2.             For Columnas As Integer = 0 To DataGridView1.ColumnCount - 1
  3.                 MsgBox(Me.DataGridView1.Item(Columnas, Renglones).Value)
  4.             Next
  5. Next

Saludos!
  #3 (permalink)  
Antiguo 15/10/2010, 20:09
 
Fecha de Ingreso: octubre-2010
Mensajes: 5
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Recorrer todas las celdas de un Datagridview

Muchas gracias Ka0stj, era lo que queria hacer y no me resultaba, ahora me gustaria saber el porque trabaja distinto el while con el for si al final son bucles, ya que tecnicamente lo mio no estaba malo(siendo que lo estaba, por que no funcionaba).
Saludos amigo
cuidate
  #4 (permalink)  
Antiguo 17/10/2010, 08:33
 
Fecha de Ingreso: octubre-2010
Mensajes: 13
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Recorrer todas las celdas de un Datagridview

Cita:
Iniciado por danielles Ver Mensaje
Muchas gracias Ka0stj, era lo que queria hacer y no me resultaba, ahora me gustaria saber el porque trabaja distinto el while con el for si al final son bucles, ya que tecnicamente lo mio no estaba malo(siendo que lo estaba, por que no funcionaba).
Saludos amigo
cuidate
Mira, no hace falta hacer dos bucles y puedes hacerlo tanto con un for como un while.

Código:
dim i as integer
dim consulta as String
for i=0 to me.datagridView.rows.count-1 'menos 1 porque cuenta el encabezado
consulta=insert into Tabla values('" & me.dataGridView.rows(i).cells(0).value.toString & "','" & me.dataGridView.rows(i).cells(1).toString & "')"
'Acá faltan los metodos para enviar la consulta a la base de datos, si no los sabes decime y te paso un ejemplo.
next i
Cada ciclo recorrerá una fila (i) y metera en cada columna de la tabla la celda que corresponda (cells(0) o cells(1)), es decir en la primera iteracion pondra en la fila i de la tabla el valor de la celda 0 y luego el valor de la celda 1.


del mismo modo puede hacerse con un while

Código:
dim i as integer
dim consulta as String
while i<me.dataGridView.rows.count
consulta=insert into Tabla values('" & me.dataGridView.rows(i).cells(0).value.toString & "','" & me.dataGridView.rows(i).cells(1).toString & "')"
'Acá faltan los metodos para enviar la consulta a la base de datos, si no los sabes decime y te paso un ejemplo.
i=i+1
end while

Etiquetas: celdas, datagridview, recorrer, todas
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 16:13.