none
Update Datatable usando Join RRS feed

  • Pregunta

  • Hola que tal!!

    Cual es la mejor forma de hacer updates de multiples tablas explico un poco mas claro:

    Tengo 2 tablas


    Tabla1

    Id        |  Detalle

    1         |  Hola1
    2         |  Hola2
    3         |  Hola3


    Tabla2

    Id        |  NombreCampo

    1         |  Campo1
    1         |  Campo2
    2         |  Campo1
    2         |  Campo2
    3         |  Campo3


    Si quiero Obtener el nombre de los Campos del id 1 uso un "select Tabla1.Id,Tabla2.NombreCampo from tabla1 left Join tabla2 on Tabla1.Id = Tabla2.Id  where Id = 1" Hasta aqui todo bien:

    El resultado de este join lo uso como datasource de un bindingsource y este lo uso para popular controles del tipo textbox. Lo que quiero lograr es que una vez enlazados los controles y hechos algunos cambios a los valores de los mismos, se pueda actualizar usando esta consulta.
    He leído que no es posible logra esto asi nada mas como si se tratara de una sola tabla, por que no se puede actualizar cuando se involucran mas de 2 tablas lo cual tiene mucha lógica por que no se sabe que tablas hay que actualizar-
    Leí por ahi que la solucion es usar esto mismo pero hacer tu propia consulta para hacer el update esta solución no agrada del todo, pero tambien leí que es posible usar 2 tablas en el binding source y establecer una relación entre ambas y lograr el mismo objetivo solo que no he encontrado la forma de hacerlo ahora bien mi pregunta es ¿cual es la mejor forma de lograr esto o la forma correcta de hacerlo?

    Gracias de Antemano por su ayuda.

    Xhester
    lunes, 18 de octubre de 2010 22:09

Respuestas

Todas las respuestas

  • hola

    has leido bien, actualizar basandote en una consulta que sua JOIN no es posible

    si podrias crear dos datatable, volcando los datos en estos cuando quieras insertar o actualizar, pero cada operacion se realiza contra una tabla distinta

    no se si estas suando dataset tipados

    Building a DAL using Strongly Typed TableAdapters and DataTables in VS 2005 and ASP.NET 2.0

    Tutorial 1: Creating a Data Access Layer

    pero en estos puedes crear metodo que extienden la funcionalidad del TableAdapter para realziar operaciones especiales

    igualmente en este caso creo que deberia crearse el dataset con dos datatable y al momento de insertar volcar la seleccion a aesto para al final si realizar el Update(), pero serian dos datatable unoa a cada table y a su respectivo TableAdapter

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 19 de octubre de 2010 2:27
  • Gracias Leandro, me costó un poco encontrar la respuesta pero esta en el select :

    SELECT        ProductID, ProductName, SupplierID, CategoryID, UnitPrice, UnitsInStock, Discontinued,
                        (SELECT Suppliers.CompanyName from Suppliers where Suppliers.SupplierId=Products.ProductId) as SupplierName
    FROM           Products

    Con esto pude solucionar mi problema muchisimas gracias.


    Saludos
    miércoles, 3 de noviembre de 2010 19:45