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

Problema al recorrer Datagridview y volcar datos a .txt

Estas en el tema de Problema al recorrer Datagridview y volcar datos a .txt en el foro de .NET en Foros del Web. Hola, buenas. Estoy en la tarea de generar un fichero de texto plano con el resultado de una de las columnas del datagridview, es decir ...
  #1 (permalink)  
Antiguo 03/01/2012, 10:02
Avatar de the_truth  
Fecha de Ingreso: enero-2012
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Problema al recorrer Datagridview y volcar datos a .txt

Hola, buenas. Estoy en la tarea de generar un fichero de texto plano con el resultado de una de las columnas del datagridview, es decir todos los registro de una columna.

Dim ruta As String = My.Application.Info.DirectoryPath & ("\dni.txt")
Dim writer As IO.StreamWriter = New IO.StreamWriter(ruta)
Dim x As Integer = 0
If (Datagridview1.Rows.Count > 0) Then
For Each fila As DataGridViewRow In Me.Datagridview1.Rows
Dim strdata As String = fila.Cells("dni").Value.ToString()
writer.WriteLine(strdata)
writer.WriteLine("")
Next
End If

writer.Close()
MsgBox("Fichero de errores creado en ruta " + ruta)


El fichero se crea, mi problema es que me dice que "Object reference not set to an instance of an object.". El fichero se crea con todos los registros, pero cuando llega al último registro del datagridview, sale ese mensaje de error.

Como podría conseguir recorrer el datagridview sin que me aparezca este problema?. Gracias de antemano foreros.
  #2 (permalink)  
Antiguo 03/01/2012, 10:53
Avatar de azimutisima  
Fecha de Ingreso: mayo-2011
Mensajes: 107
Antigüedad: 12 años, 10 meses
Puntos: 14
Respuesta: Problema al recorrer Datagridview y volcar datos a .txt

Mira esto -> recorrer filas de un datagrid

En el ejemplo el segundo for recorre todas las columnas en tu caso no haría falta.
__________________
Si te gusto mi respuesta anímame a continuar dandome un voto.
  #3 (permalink)  
Antiguo 03/01/2012, 11:08
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 5 meses
Puntos: 58
Respuesta: Problema al recorrer Datagridview y volcar datos a .txt

Hola que tal, bueno yo hace mucho tenia ese problema al convertir un DataGridView a un PDF . El problema es que quieres convertir un valor NULL a string y no se puede ( Por lo general una celda esta vacia ).

Yo lo corregi asi en C#:

Código C#:
Ver original
  1. for (int i = 0; i <= Grid.RowCount - 1; i++)
  2. {
  3.    for (int j = 0; j < Grid.ColumnCount; j++)
  4.    {
  5.       if (!string.IsNullOrEmpty((String)Grid[j, i].Value))
  6.       {
  7.           /// Toma Valor
  8.        }
  9.     }
  10. }

Con esto siempre que la celda no sea null o vacia, tomara el valor.

Espero te sirva

Última edición por drako_darpan; 03/01/2012 a las 11:15
  #4 (permalink)  
Antiguo 04/01/2012, 02:45
Avatar de the_truth  
Fecha de Ingreso: enero-2012
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema al recorrer Datagridview y volcar datos a .txt

Lo estoy haciendo en visual basic y no sé muy bien como hacer el casting de las líneas que me pones, soy un completo novato. Cuál sería el equivalente en visual basic?. Muchas gracias por vuestra ayuda y disculpad mi ignorancia a la hora de pasar C# a Visual Basic.
  #5 (permalink)  
Antiguo 04/01/2012, 04:17
Avatar de azimutisima  
Fecha de Ingreso: mayo-2011
Mensajes: 107
Antigüedad: 12 años, 10 meses
Puntos: 14
Respuesta: Problema al recorrer Datagridview y volcar datos a .txt

Gracias a ti por tener la deferencia de al menos mirar mi ejemplo (o al menos comentarlo) ....

Pd: Esta en vb.net
__________________
Si te gusto mi respuesta anímame a continuar dandome un voto.
  #6 (permalink)  
Antiguo 04/01/2012, 04:52
Avatar de the_truth  
Fecha de Ingreso: enero-2012
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema al recorrer Datagridview y volcar datos a .txt

Vale he dado con otra forma de hacerlo, es esta:
Dim ruta As String = My.Application.Info.DirectoryPath & ("\dni_no_existentes.txt")
Dim writer As IO.StreamWriter = New IO.StreamWriter(ruta)
Dim NCol As Integer = DGVDniNoExistentes.ColumnCount
Dim NRow As Integer = DGVDniNoExistentes.RowCount

'For i As Integer = 1 To NCol
' writer.WriteLine(DGVDniNoExistentes.Columns(i - 1).Name.ToString)
' DGVDniNoExistentes.CurrentRow.Cells("URL").Value()
' writer.WriteLine("")
'Next

For Fila As Integer = 0 To NRow - 1
writer.WriteLine(DGVDniNoExistentes.Rows(Fila).Cel ls("Dni").Value)
writer.WriteLine("")
Next

writer.Close()
MsgBox("Fichero de errores creado en ruta " + ruta)


azimutisima, sí miré el ejemplo de tu mensaje, pero no me iba y probé otras cosas, di con esta solución y la comparto aquí para todos. Un saludo.

Última edición por the_truth; 04/01/2012 a las 05:11
  #7 (permalink)  
Antiguo 04/01/2012, 07:39
Avatar de azimutisima  
Fecha de Ingreso: mayo-2011
Mensajes: 107
Antigüedad: 12 años, 10 meses
Puntos: 14
Respuesta: Problema al recorrer Datagridview y volcar datos a .txt

Dije que estaba en vb.net??? No se en que estaba pensando... esta en vc.net , de todas formas si te fijas son primos hermanos.

Me alegro que te funcionara y disculpa pero me pareció que me ignorabas, todo resuelto.
__________________
Si te gusto mi respuesta anímame a continuar dandome un voto.

Etiquetas: datagridview, txt
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 14:32.