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?

Preguntas similare

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?
Respuesta Responder a este mensaje
#2 ANT1
12/01/2007 - 09:14 | Informe spam
No puedo ayudarte a resolver tu duda, pero si te dire que yo tambien me
he topado con problemas surrealistas con el datagridview. Y es que en
una aplicacion windows tengo varios datagridviews, todos configurados
exactamente igual y trabajando con ellos de la misma manera,
sencillamente cambiando los datos a aparecer en cada uno, pero todos de
tipo texto y alguno me da errores internos de reubicacion del inidice
interno que no entiendo .

En mi opinion deben de ser algunos bug que les han quedado o algo, aun
tendran que depurar los datagridviews.

Aunque esto, es solo mi opinion.

Un saludo.


Juan Diego Bueno ha escrito:

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?
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida