Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   Actualizar datos de una consulta (https://www.clubdelphi.com/foros/showthread.php?t=40493)

pepitu 19-02-2007 10:38:07

Actualizar datos de una consulta
 
Hola.
Os cuento mi problema de novato en C#:
-en un dataGridView cargo un TableAdapter (que se ha formado al arrastrar un DataAdapter en el diseñador del dataset y en el que cargo una consulta que implica a dos tablas (inner join)).

El tema está que quisiera poder actualizar los datos mostrados (editar, eliminar,...) pero no consigo guardar (actualizar) dichos cambios ya que no se generan los otros métodos (aparte del Select) como Update.

Este problema por descontado que no aparece cuando el orígen de datos del DataGrid es sólo una tabla, cuyos datos puedo actualizar usando el método Update del DataAdapter (pasándole el datset).

Se puede? Cómo?

Saludos

fredo 27-02-2007 15:11:45

ningun dataset te permitira modificar datos hay otra tabla involucrada...osea de esa forma no tienes solucion, lo mas practico y SI FUNCIONA es usar solo una tabla en el componente, y los campos que requieras de la segunda tabla separarlos en campos calculados en base a la primera... con eso deberia funcionar... otra opcion si la velocidad es lenta es utilizar clientdataset cargando el contenido completo del resultado, luego ir chequeando los cambio e ir relializando los codigos sqls necesarios para actualizar los campos que si necesitas....

Espero haberte ayudado...

Slds.

Por si acaso esto pasa en delphi, no soy especialista en C# pero al caso es lo mismo debido a que al haber 2 tablas involucradas en una query no se sabe cual actualizar a raiz de los cambios, esto mismo pasara si aplicas group by distinct... etc...

__hector 27-02-2007 16:44:49

No estoy tan seguro de lo anterior. Lo que si te puedo decir es que puedes utilizar un SQLCommandBuilder y asociarlo con el adapter para generar las sentencias sql de actualizacion y borrado de datos. O tambien puedes escribir directamente las sentencias de actualizacion, usando las propiedades UpdateCommand y DeleteCommand del SqlDataAdapter.

Claro esta, para esto el resultado de la consulta que traes debe ser actualizable (no puedes editar campos con funciones agregadas, o joins que repitan filas, entre otras limitantes que puedes encontrar en los Books online de sql server)

pepitu 02-03-2007 13:27:27

Gracias
 
Fredo, Hector....
Gracias por vuestras respuestas y perdonad en demorarme con este mensaje.

Voy avanzando pero con algunos problemas como:
- la lentitud al usar varios datasets tipados en un mismo form (tarda en cargarse por lo que he pasado a realizar una serie de pasos accediendo de forma conectada -datareader-)

Realmente me lleva todo mucho más tiempo del esperado...

Perdón....me voy por las ramas. Mil gracias


La franja horaria es GMT +2. Ahora son las 16:09:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi