Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Actualizar datos de un Datagrid que muestra datos de mas de una tabla

54 views
Skip to first unread message

José A. Giménez [Py]

unread,
Jun 28, 2009, 11:19:44 PM6/28/09
to

Saludos.
Tengo un data Grid que trae los datos de varias tablas (INNER JOIN)
C�mo puedo actualizar los datos de este DataGrid cuando el usuario cambia un
valor?
Si es con una sola tabla .Update funciona bien, pero al tener varias me da
error.

SoftJaén

unread,
Jun 29, 2009, 12:14:18 AM6/29/09
to

"Jos� A. Gim�nez [Py]" pregunt�:

Hola, Jos�:

Si el objeto DataTable resultante afecta a m�s de una tabla de la base de
datos, que yo sepa, no se pueden actualizar autom�ticamente las tablas
afectadas; tendr�s que actualizarlas manualmente, y a decir verdad, es un
trabajo complicado de hacer, porque tendr�as que recorrer todos los
registros existentes en el DataGridView, e ir actualizando los datos de los
campos en sus respectivas tablas: los datos de X columnas actualizarlos en
la tabla X, los datos de Y columnas en la tabla Y, y los datos de Z columnas
hacer lo propio en la tabla Z. Todo esto se har�a ejecutando las oportunas
consultas SQL de actualizaci�n (UPDATE), o de eliminaci�n (DELETE). Y si has
a�adido nuevos registros, tendr�as que ejecutar consultas de datos a�adidos
(INSERT INTO).

Ten en cuenta que cuando se ejecutan consultas de combinaci�n (INNER JOIN),
mayormente es para presentar datos de s�lo lectura, como puede ser un
listado de ventas, de compras, etc., para imprimirlos o mostr�rselos al
usuario en pantalla.

Un saludo

--
Enrique Mart�nez
[MS MVP - VB]

Nota informativa: La informaci�n contenida en este mensaje, as� como el
c�digo fuente incluido en el mismo, se proporciona �COMO EST��, sin
garant�as de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en pr�ctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.


José A. Giménez [Py]

unread,
Jun 29, 2009, 1:53:06 AM6/29/09
to

Gracias por tu respuesta.
Como los datos son c�digos de identificaci�n, estoy mostrando su descripci�n
en el datagrid... apra que el usuario lo identifique.
Ej.
L001 - Prueba - 123 (en la tabla)
En el Datagrid
Cliente L001 - Prueba - 123 (ya que el Codigo L001 es el Cliente que se
llama 'Cliente L001'
Mi idea es cambiar el campo 123 (y otros) a cualquier valor.

Y c�mo se puede hacer? C�mo suelen hacerlo ustedes?

SoftJaén

unread,
Jun 29, 2009, 9:35:48 AM6/29/09
to

"Jos� A. Gim�nez [Py]" pregunt�:

> Como los datos son c�digos de identificaci�n, estoy mostrando su

�Vamos a ver! Si yo quiero modificar, actualizar, cambiar el c�digo de un
Cliente, para esa tarea no me es necesario rellenar un control DataGrid, y
menos, como producto de ejecutar una consulta de selecci�n que agrupe varias
tablas, porque en definitiva se trata de modificar un �nico registro: el del
Cliente X o el del Cliente Y.

Pues bien, lo que yo har�a era ejecutar una simple consulta SQL de
actualizaci�n (UPDATE). Si deseo cambiar el c�digo del Cliente L001 por el
c�digo L928, ejecutar�a la siguiente consulta:

UPDATE Tabla_Clientes
SET Codigo = 'L928'
WHERE Codigo = 'L001'

Es decir, ejecutar�a esa consulta cada vez que necesite modificar el c�digo
de identificaci�n de un Cliente.

José A. Giménez [Py] algarroba punto com

unread,
Jun 29, 2009, 10:29:12 AM6/29/09
to

Gracias, si, tienes raz�n.
En realidad mi datagrid me muestra los datos de una tabla que est�
relacionada 1-varios.
Estoy intentando hacer un Maestro-Detalle, donde mi Datagrid es el Detalle
En un Cuadro combinado, selecciono los datos y luego mediente una SQL traigo
los datos correspondientes de la tabla relacionada en el DataGrid.

Es como si tuviera una cabecera de factura con el Numero y en el datagrid
los productos que se compraron con esa factura. entonces quiero usar el
daagrid para agregar o modificar los registros.

Se me complica un poco porque no tengo La estructura Form-SubForm de Access.


SoftJa�n

unread,
Jun 29, 2009, 10:48:31 AM6/29/09
to

Entonces, �d�nde est� el problema?

Si dices que los datos que muestras en el control DataGrid pertenecen a una
�nica tabla, cr�ate un conjunto de datos "tipado" y podr�s actualizarlos
llamando al m�todo �Update� del objeto TableAdapter apropiado.

> Se me complica un poco porque no tengo La estructura
> Form-SubForm de Access.

Si la relaci�n entre las tablas la tienes ya creada en la propia base de
datos, cuando crees un origen de datos en tu proyecto, la relaci�n ser�
creada autom�ticamente entre los objetos DataTable correspondientes.
Simplemente basta que arrastres al formulario los campos del objeto
DataTable que actuar� de Maestro y el objeto DataTable que actuar� de
Detalle, en �ste �ltimo supuesto, aquellos campos que se mostrar�n en el
control DataGridView.

José A. Giménez [Py] algarroba punto com

unread,
Jun 29, 2009, 11:15:27 AM6/29/09
to

Los datos del DataGrid no son de una �nica tabla, toma los datos de varias
tablas, por eso, al querer actualizar me de el error

José A. Giménez [Py] algarroba punto com

unread,
Jun 29, 2009, 11:14:48 AM6/29/09
to

Al llamar al metodo Update me da un error, diciendome que no se puede
actualizar

SoftJa�n

unread,
Jun 29, 2009, 11:38:33 AM6/29/09
to

"Jos� A. Gim�nez [Py]" escribi�:

> Los datos del DataGrid no son de una �nica tabla, toma los
> datos de varias tablas, por eso, al querer actualizar me de el error

Entonces no es lo que me hab�as comentado anteriormente.

Pues volvemos al principio: si los datos pertenecen a m�s de una tabla, no
puedes utilizar el m�todo Update del objeto TableAdapter, porque �ste
objeto, si la consulta SQL de selecci�n afecta a m�s de una tabla, no
configura las propiedades InsertCommand, UpdateCommand y DeleteCommand del
objeto DataAdapter subyacente.

José A. Giménez [Py] algarroba punto com

unread,
Jun 29, 2009, 2:53:44 PM6/29/09
to

Gracias, entiendo, pero... si no se puede, entonces c�mo lo hacen ustedes?

José A. Giménez [Py]

unread,
Jun 29, 2009, 8:43:20 PM6/29/09
to
Gracias por tus orientaciones, lo he conseguido usando DataSets y
arrastr�ndolos al form, modificando las propiedades de las columnas.



-----------------------------------------------------------------------------
Less Spam Better enjoyable experience
Visit : news://spacesst.com

0 new messages