Bueno, tengo un datagridview, y lo quiero recorrer para pasar todo a un archivo .dat.
El problema llega cuando aprieto el boton para pasarlo todo, y me sale este error:
"Object reference not set to an instance of an object."
Busque info en internet para resolverlo, pero no encontre mucho. Alguien sabe como resolverlo?
String line = "";
StreamWriter writer = File.AppendText(path + "\\update.dat");
String value = "";
for (int rows = 0; rows < dataGridView1.Rows.Count - 1; rows++)
{
line = Base64Decode("BQ==") + Base64Decode("Aw==") + "1" + Base64Decode("BA==") + Base64Decode("Aw==");
for (int col = 0; col < dataGridView1.Rows[rows].Cells.Count - 1; col++)
{
line += col+1.ToString() + Base64Decode("Bg==");
value = dataGridView1.Rows[rows].Cells[col].Value.ToString();
if (value == "-")
{
line += Base64Decode("Bg==");
}
else
{
line += value + Base64Decode("Bg==");
}
}
line += Base64Decode("BA==");
writer.WriteLine(line);
El error me lo tira acá:
value = dataGridView1.Rows[rows].Cells[col].Value.ToString();
Cita de: jaxoR en 16 Mayo 2015, 23:03 PM
value = dataGridView1.Rows[rows].Cells[col].Value.ToString();
Es un error que se da al intentar asignar una referencia de un objeto inexistente a un objeto.
Quiero decir que .Value en algun momento será null. Esto es debido a que en esa columna no tendrás ningún tipo de dato asignado.
dataGridView1.Rows[rows].Cells[col].Value;
Para ello primero comprueba si no es null.
try{
value = dataGridView1.Rows[rows].Cells[col].Value.ToString();
} catch (Exception ex){
MessageBox.Show(ex.message);
}
Aunque con una sentencia condicional te valdría (If-Else). Resumiendo, llamas al .ToString() del Value en ciertos casos en el que el Value no está creado.
Saludos.