Error de defecto en el Datagridview

19/12/2006 - 17:15 por ANT1 | Informe spam
Tengo una aplicacion con un DatagridView al cual le paso los datos
atraves de un binding source. Los datos estan en un IList.

He hecho este tipo de aplicacion un par de veces mas, y sencillamente
gestiono una base de datos y dichos datos los saco por pantalla
mediante el datagridview. Nunca me habia dado este error.

Imaginaros que he hecho una busqueda con filtro en la base de datos, no
ha encontrado ningun objeto similar, y por tanto tengo un IList vacio
que será pasado al datagridview como fuente de datos nueva, y por
tanto todos los objetos que habia en el datagrid view, todas las
lineas, seran borrados.

Y es que al tratar de pasar un IList vacio (con count=0, no nulo), el
programa, segun va borrando celda a celda de los objetos que antes se
representaban en el datagridview va sacando ventanas con la cabecera:

"DataGridView Default Error Dialog"

No es que se produzca una excepcion concreta que me detenga la App, si
no que sale una ventana, le doy a aceptar y me sale otra hasta que se
han borrado todas las celdas.

El mensaje dentro de la ventana el mismo, mas o menos todo el rato. Me
indica que la ventana que se va a borrar no tiene dato, y la borra.
Tengo un codigo y una configuracion identica en otro formulario del
proyecto, y no da ningun error.

¿Porque puede ser esto?

Le da igual que haga un clear de la List que tiene el databinding o lo
que sea. El error solo aparece cuando se pasa de tener alguna linea a
no tener ninguna.

Preguntas similare

Leer las respuestas

#1 ANT1
19/12/2006 - 17:28 | Informe spam
Se me ha olvidado comentar antes que si hago paso a paso todo el
proceso, no se produce ningun error, y al datagridview se actualiza
como si nada.

He solucionado el problema mediante este codigo:

articuloDataGridView.DataSource = null;
articuloBindingSource.DataSource = listaArticulos;
articuloDataGridView.DataSource = articuloBindingSource;
articuloDataGridView.Refresh();

Donde, como se puede ver, elimino la fuente de datos de mi
datagridview, actualizo la fuente de mi bindingsource y le vuelvo a
asignar como fuente a mi datagridview dicho bindingsource. Antes
sencillamente tenia esto:

articuloBindingSource.DataSource = listaArticulos;
articuloDataGridView.Refresh();

El codigo que se ve arriba lo he hecho un monton de veces y nuca habia
dado problema.

¿Porque ahora si?

Se que he dicho que lo he solucionado, pero me gustaria saber el porque
de este error.

Gracias
Respuesta Responder a este mensaje
#2 ANT1
19/12/2006 - 17:42 | Informe spam
Pues no se ha solucionado.

El error salta, unas veces si, otras no.

No se me ocurre que puede ser ya.
Respuesta Responder a este mensaje
#3 SamusAran
19/12/2006 - 19:17 | Informe spam
¿Has probado con articuloBindingSource.clear?

Pruebalo además con Datagrid y no con DatagridView

Un saludo


ANT1 ha escrito:

Pues no se ha solucionado.

El error salta, unas veces si, otras no.

No se me ocurre que puede ser ya.
Respuesta Responder a este mensaje
#4 ANT1
20/12/2006 - 09:38 | Informe spam
Gracias por contestar Samus.

He probado el articulobindinsource.clear(); , pero esto lo que hace es
limpiarme la IList listaArticulos que tengo como fuente de datos al
estar referenciados, y eso no me interesa. Tambien he probado a hacer
un articulosbindingsource.List.Clear(); el cual solo elimina los
elementos de bindingsource, pero sigue fallando igual.

Y es que esta visto que no es problema del bindingsource si no del
datagridview, que no se actualiza correctamente. Y ya digo, es algo que
he hecho mil veces y que en el mismo proyecto tengo otras 4 veces de
igual modo y no da ese error.

Es como si en tiempo de ejecucion no le diese tiempo al datagridview a
ser consciente de que se han eliminado los objetos de su fuente de
datos y por tanto diese error de Index en esos elementos. Ya que si lo
hago paso a paso, no da ningun error.

Tendria que probarlo en modo release en vez de en modo debug, pero
tiempo al tiempo.

Respecto al Datagrid en vez de datagridview. Nuna he trabajado con
datagrids, son de NET.1, ¿no?. No se hasta que punto seria compatible
con todo el código que ya tengo escrito, y si la apariencia
(visualmente hablando) estaria acorde con los datagridviews que ya
tengo.

Pero ya te digo; el caso es que no entiendo el porque de ese problema
si el código está mas que probado para otros proyectos y formularios,
y porque hay veces que salta y hay veces que no (y forzando a que se
produzcan las mismas situaciones).

Un saludo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida