Problemas con DataGridView

11/01/2007 - 09:51 por Juan Diego Bueno | Informe spam
Buenas grupo:

Este es un problema que ya me ha aparecido varias veces, pero
francamente... no recuerdo como lo he solucionado. Ahora mismo, vuelve
a pasarme y no encuentro la solución. Yo tengo un datagridview
asociado a un bindingsource con una tabla principal con una serie de
claves foráneas.

Para seleccionar los campos de las claves foráneas, recurro a otros
bindingsources y datatableadapters referidos a las tablas relacionadas.
Configuro la columna como un combobox y como display member le doy el
campo "Nombre" por ejemplo, y como valuemember la clave principal (que
es foránea en la tabla principal). Esto debería funcionar, y de hecho
funciona en según que casos... pero inexplicablemente me falla en un
combo que hace referencia a una de las tablas (cuya clave es un entero,
por cierto). El error se produce en tiempo de ejecución y es:

System.FormatException: El valor de DataGridViewComboBoxCell no es
válido.

Para reemplazar este cuadro de diálogo predeterminado controle el
evento DataError

Bueno, en este cuadro de diálogo me da una solución, que podría
aplicar, pero... ¿Por qué se produce esta excepción y de que manera
puedo hacer que no se llegue a producir en vez de tener que controlarla?
 

Leer las respuestas

#1 Juan Diego Bueno
11/01/2007 - 11:22 | Informe spam
Bueno, os comento como lo resolví, aunque sigo sin entender el por
que...

Resulta que el bs del combo estaba enlazado a una vista, que devuelve,
como os dije, un codigo numerico y un nombre (a imagen y semejanza de
la tabla, ya que está basada en ella junto con una unión). Manejando
el evento DataError comprobé que una vez seleccionado el item en el
combo, al validarlo, mostraba el código numérico, en vez del
DisplayMember que tenía que mostrar (es decir, el campo de texto
"nombre").

Esta situación se ha resuelto usando la tabla origen de la vista...
pero como os comenté, no entiendo el por qué.

Si alguien ha entendido mi verborrea y sabe a que puede deberse... se
agradecería el comentario

Juan Diego Bueno ha escrito:

Buenas grupo:

Este es un problema que ya me ha aparecido varias veces, pero
francamente... no recuerdo como lo he solucionado. Ahora mismo, vuelve
a pasarme y no encuentro la solución. Yo tengo un datagridview
asociado a un bindingsource con una tabla principal con una serie de
claves foráneas.

Para seleccionar los campos de las claves foráneas, recurro a otros
bindingsources y datatableadapters referidos a las tablas relacionadas.
Configuro la columna como un combobox y como display member le doy el
campo "Nombre" por ejemplo, y como valuemember la clave principal (que
es foránea en la tabla principal). Esto debería funcionar, y de hecho
funciona en según que casos... pero inexplicablemente me falla en un
combo que hace referencia a una de las tablas (cuya clave es un entero,
por cierto). El error se produce en tiempo de ejecución y es:

System.FormatException: El valor de DataGridViewComboBoxCell no es
válido.

Para reemplazar este cuadro de diálogo predeterminado controle el
evento DataError

Bueno, en este cuadro de diálogo me da una solución, que podría
aplicar, pero... ¿Por qué se produce esta excepción y de que manera
puedo hacer que no se llegue a producir en vez de tener que controlarla?

Preguntas similares