Refrescar Datagrid

23/12/2005 - 00:37 por notengo | Informe spam
Hola,

Estoy empezando con esto del c# y tengo una duda. He creado una base de
datos con una clave primaria la cual se autoincrementa. Todos los datos de
esta BBDD los muestro en un datagrid desde el cual puedo añadir o
modificar nuevos registros. Hasta aqui todo perfecto. El problema me viene
cuando voy a añadir un nuevo registro...me aparece la clave primaria en
blanco y no se inserta nada puesto que se va autoincrementando sola pero a
la hora de guardarlo...lo guarda bien y lo autoincrementa en la BBDD pero
en el datagrid me deja en blanco el codigo...me muestra toda la
informacion que acabo de introducir excepto el codigo de la clave primaria
que se ha creado automaticamente y no he tenido q añadir yo. Hay alguna
forma de refrescar el datagrid para que me lo muestre??

Espero haberme expresado con claridad y me sepan ayudar
Muchas gracias

Preguntas similare

Leer las respuestas

#1 Benton
23/12/2005 - 01:46 | Informe spam
La solución tiene que ver con ADO.NET y la dirección de los parámetros de
los comandos que usas.

No das información sobre los objetos de ADO.NET que utilizas, pero
imaginemos que para llenar la tabla que alimenta al grid, usas un
DataAdapter, el cual se sirve de una sentencia SQL para el Select, de una
cadena de conexión (o un object connection), y un command builder le
construye los comandos Insert, Update, y Delete.

Pues bien, cada uno de estos comandos del DataAdapter tiene una colección de
objetos "Parameter", uno para cada campo de la tabla. Una de las propiedades
de estos objetos es "Direction", cuyo valor se les asigna desde la
enumeración ParameterDirection, a saber:

ParameterDirection.Input : Se asume que el valor de ese campo viaja en un
solo sentido, del cliente al servidor.
ParameterDirection.InputOutput : Se asume que el valor de ese campo viaja en
ambos sentidos. Primero del cliente al servidor, y luego regresa del
servidor al cliente, trayendo los cambios que el servidor hizo al campo
después de guardarlo o insertarlo (autoincrementarlo, modificarlo mediante
algun trigger, etc).
ParameterDirection.Output : Se asume que el valor de ese campo viaja en un
solo sentido, del servidor al cliente, después de insertar o modificar un
registro. Util para los campos que del lado cliente son de solo lectura, por
ejemplo.

Conclusión: para que el cliente vea lo que pasó con ese campo en el servidor
después de insertar, la dirección de los parámetros del InsertCommand del
DataAdapter deben ser InputOutput para los campos autoincrementables.

Espero haberte ayudado. Al menos para empezar a investigar. :-)

Saludos,

-Benton


"gerar" escribió en el mensaje
news:
Hola,

Estoy empezando con esto del c# y tengo una duda. He creado una base de
datos con una clave primaria la cual se autoincrementa. Todos los datos de
esta BBDD los muestro en un datagrid desde el cual puedo añadir o
modificar nuevos registros. Hasta aqui todo perfecto. El problema me viene
cuando voy a añadir un nuevo registro...me aparece la clave primaria en
blanco y no se inserta nada puesto que se va autoincrementando sola pero a
la hora de guardarlo...lo guarda bien y lo autoincrementa en la BBDD pero
en el datagrid me deja en blanco el codigo...me muestra toda la
informacion que acabo de introducir excepto el codigo de la clave primaria
que se ha creado automaticamente y no he tenido q añadir yo. Hay alguna
forma de refrescar el datagrid para que me lo muestre??

Espero haberme expresado con claridad y me sepan ayudar
Muchas gracias

Respuesta Responder a este mensaje
#2 Mike Diaz
04/02/2006 - 20:08 | Informe spam
Yo estoy haciendo una aplicación similar pero no he logrado guardar de vuelta
a la base de datos!! podrias explicarme como le hiciste para poblar tu
datagrid, modificarlo y que esas modificaciones se vayan a la base de datos?

Gracias de antemano

"gerar" wrote:

Hola,

Estoy empezando con esto del c# y tengo una duda. He creado una base de
datos con una clave primaria la cual se autoincrementa. Todos los datos de
esta BBDD los muestro en un datagrid desde el cual puedo añadir o
modificar nuevos registros. Hasta aqui todo perfecto. El problema me viene
cuando voy a añadir un nuevo registro...me aparece la clave primaria en
blanco y no se inserta nada puesto que se va autoincrementando sola pero a
la hora de guardarlo...lo guarda bien y lo autoincrementa en la BBDD pero
en el datagrid me deja en blanco el codigo...me muestra toda la
informacion que acabo de introducir excepto el codigo de la clave primaria
que se ha creado automaticamente y no he tenido q añadir yo. Hay alguna
forma de refrescar el datagrid para que me lo muestre??

Espero haberme expresado con claridad y me sepan ayudar
Muchas gracias


Respuesta Responder a este mensaje
#3 Octavio Hernandez
05/02/2006 - 11:08 | Informe spam
Hola Mike,

El truco está en modificar el InsertCommand del adaptador para que además de
la sentencia INSERT incluya un SELECT que "refresque" los valores generados
del lado del servidor:

http://support.microsoft.com/defaul...-us;320897

Slds - Octavio

"Mike Diaz" escribió en el mensaje
news:
Yo estoy haciendo una aplicación similar pero no he logrado guardar de
vuelta
a la base de datos!! podrias explicarme como le hiciste para poblar tu
datagrid, modificarlo y que esas modificaciones se vayan a la base de
datos?

Gracias de antemano

"gerar" wrote:

Hola,

Estoy empezando con esto del c# y tengo una duda. He creado una base de
datos con una clave primaria la cual se autoincrementa. Todos los datos
de
esta BBDD los muestro en un datagrid desde el cual puedo añadir o
modificar nuevos registros. Hasta aqui todo perfecto. El problema me
viene
cuando voy a añadir un nuevo registro...me aparece la clave primaria en
blanco y no se inserta nada puesto que se va autoincrementando sola pero
a
la hora de guardarlo...lo guarda bien y lo autoincrementa en la BBDD pero
en el datagrid me deja en blanco el codigo...me muestra toda la
informacion que acabo de introducir excepto el codigo de la clave
primaria
que se ha creado automaticamente y no he tenido q añadir yo. Hay alguna
forma de refrescar el datagrid para que me lo muestre??

Espero haberme expresado con claridad y me sepan ayudar
Muchas gracias


Respuesta Responder a este mensaje
#4 Octavio Hernandez
05/02/2006 - 11:14 | Informe spam
Mike,

Tienes buenos tutoriales de cómo realizar todas las tareas básicas de
ADO.NET aquí:

http://es.gotdotnet.com/quickstart/...romDB.aspx

Slds - Octavio

"Mike Diaz" escribió en el mensaje
news:
Yo estoy haciendo una aplicación similar pero no he logrado guardar de
vuelta
a la base de datos!! podrias explicarme como le hiciste para poblar tu
datagrid, modificarlo y que esas modificaciones se vayan a la base de
datos?

Gracias de antemano

"gerar" wrote:

Hola,

Estoy empezando con esto del c# y tengo una duda. He creado una base de
datos con una clave primaria la cual se autoincrementa. Todos los datos
de
esta BBDD los muestro en un datagrid desde el cual puedo añadir o
modificar nuevos registros. Hasta aqui todo perfecto. El problema me
viene
cuando voy a añadir un nuevo registro...me aparece la clave primaria en
blanco y no se inserta nada puesto que se va autoincrementando sola pero
a
la hora de guardarlo...lo guarda bien y lo autoincrementa en la BBDD pero
en el datagrid me deja en blanco el codigo...me muestra toda la
informacion que acabo de introducir excepto el codigo de la clave
primaria
que se ha creado automaticamente y no he tenido q añadir yo. Hay alguna
forma de refrescar el datagrid para que me lo muestre??

Espero haberme expresado con claridad y me sepan ayudar
Muchas gracias


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