none
querys em DataSet com duas ou mais tabelas RRS feed

  • Pergunta

  • pessoal

    como executar umaquery com duas ou mais tabelas (que estão em um DataSet)?

    por exemplo:

    SELECT
        foo,
        bar
    FROM
        table
    WHERE
        foo in (SELECT
                        lorem,
                        ispum
                    FROM
                        another_table)
    sexta-feira, 25 de maio de 2007 17:11

Todas as Respostas

  • Não dá pra fazer isso com DataSets. As queries são individuais e são feitas em cada DataTables e só são passados os critérios. O que você quer fazer é exatamente o podera fazer com o Linq.
    sexta-feira, 25 de maio de 2007 17:51
  • tem link pro Linq Smile

    O que é isso? Pode dar mais detalhes?
    sexta-feira, 25 de maio de 2007 18:03
  • http://msdn.microsoft.com/data/ref/linq
    sexta-feira, 25 de maio de 2007 18:09
  • Obrigado leonardo

    O linq depende do c# 3.0; não existe nenhum recurso e etc. que permita realizar isso com as tabelas dentro de um único DataSet?!

    Confesso que a minha admiração pelos DataSet foram abaladas Smile

    ainda não havia precisado de nada muito complexo com datasets, porém realizar buscas "com várias" tabelas é uma operação comum e de certa forma isto é uma "limitação" desanimadora.

    Se alguém tiver uma alternativa com C# 2.0 ... ou falei besteira?!
    segunda-feira, 28 de maio de 2007 19:43
  • C#3.0 ou VB.9.

     

    Com ADO.NET não, e na verdade esse não é o objetivo do DataSet, portanto não encaro como uma limitação.

    segunda-feira, 28 de maio de 2007 19:51
  • hummm

    mas os datasets de certa forma "simulam" o banco de dados, permitindo que trabalhemos até mesmo desconectados, correto? não é natural imaginal buscas em N tabelas mesmo que desconectadamente?!
    segunda-feira, 28 de maio de 2007 19:56
  • Realmente seria ótimo, mas talvez inviável. Ele atualmente já é um gargalo quando se trata de aplicações distribuídas, imagina incorporar mais esse recurso.
    segunda-feira, 28 de maio de 2007 20:09
  • realmente imagino que não seja necessariamente "simples", mas que seria lindo seria Smile

    Poderia nos dar ume exemplo de como fazer essa busca com o linq?!
    terça-feira, 29 de maio de 2007 11:39
  • Sim, veja no exemplo eu vou preencher um DataGridView com os dados de duas tabelas do DataSet.

     

    var query = from order in ordersDS1.SalesOrderHeader
                           join orderDetail in ordersDS1.SalesOrderDetail on order.SalesOrderID equals

                        orderDetail.SalesOrderID
                           where order.TotalDue > 10000
                           where orderDetail.UnitPriceDiscount > 0
                           select new { ID = order.SalesOrderID, order.AccountNumber, order.TotalDue,

                         orderDetail.UnitPriceDiscount };

     

    dataGridView1.DataSource = query.ToList();

     

    terça-feira, 29 de maio de 2007 12:40