Cambiar valores en DataGridViewCell

22/01/2007 - 17:14 por Hoze | Informe spam
Hola a todos.

Al validar el contenido de una celda de un grid, compruebo que el valor
exista en la bbdd. Si no existe, muestro un formulario de ayuda que permite
al usuario seleccionar un valor correcto.

Hasta aquí perfecto. Cojo el valor seleccionado y lo pongo en el
datagridview, pero está puesto como "de mentira". Al intentar añadir un
nuevo registro, la aplicación me da error al validar el campo PK del
registro, diciendo que está a nulo... ¡¡¡ pero no lo está!!! yo le he dado
un valor.

He probado a capturar el evento CellEndEdit para mandar un EndEdit al
BindingSource al que está enlazado el grid, pero nada, me sigue dando el
mismo error.


¿me podéis dar alguna pista?



Gracias
 

Leer las respuestas

#1 ANT1
22/01/2007 - 17:57 | Informe spam
La verdad es que no soy ningun experto en esto, ¿pero el PK es
autogenerado o lo define el usuario de la aplicacion?.

Si el valor lo defines tu manualmente (PK a PK) la verdad es que no se
como puede fallarte porque tendria que funcionar como una variable mas.

Si lo tienes autogenerado asegurate de que estas dandole el valor
adecuado para que autogenere la PK. Aunque claro, pusieras el valor que
pusieras este no seria nulo, que es el error que te da por lo que has
puesto. ¿Como tienes asociado el objeto al datagridview?

Yo siempre los hago autogenerados indicando a la base de datos que lo
genere cuando le envio valor cero. Por ello dentro de las propiedades
de la clave primaria le indico un "unsaved value = 0", aunque claro
todo esto es para postgres que es la unica base de datos que tengo. Al
utilizar un binding source generado a aprtir de la clase del objeto en
cuestion como fuente de datos al datagridview automaticamente el
datagridview toma las caracteristicas de este, y por tanto si es una
nueva linea del datagridview lo considera un nuevo objeto y esa celda
toma automaticamente el valor 0, no teniendo que modificarla yo para
nada.

On 22 ene, 17:14, "Hoze" wrote:
Hola a todos.

Al validar el contenido de una celda de un grid, compruebo que el valor
exista en la bbdd. Si no existe, muestro un formulario de ayuda que permite
al usuario seleccionar un valor correcto.

Hasta aquí perfecto. Cojo el valor seleccionado y lo pongo en el
datagridview, pero está puesto como "de mentira". Al intentar añadir un
nuevo registro, la aplicación me da error al validar el campo PK del
registro, diciendo que está a nulo... ¡¡¡ pero no lo está!!! yo le he dado
un valor.

He probado a capturar el evento CellEndEdit para mandar un EndEdit al
BindingSource al que está enlazado el grid, pero nada, me sigue dando el
mismo error.

¿me podéis dar alguna pista?

Gracias

Preguntas similares