none
Busca de registros em uma LIST<> ou DataTable / GridView RRS feed

  • Pergunta

  • Tenho uma gridview carregada por um datatable eu carrego esse datable no LOAD da pagina depois faço buscas pelo campo codigo e pela descrição mas gostaria de fazer isso com os dados carregados no datatable ao inves de toda busca executar minha query SQL e recarregar o datable gostaria de fazer a busca nos registros, creio que terei que usar o datatable em uma session mas se eu fizer uma busca no datatable terei que criar um novo com o resultado eu gostaria de ter um datatable carrega e realizar os filtros nesse datatable sem ter que ficar copiando os registros nas operações de select(), ou fazer isso em uma LIST<> existe uma forma de fazer isso, sera que os dados persistiriam na pagina

    Junior

    segunda-feira, 30 de janeiro de 2017 21:58

Respostas

  • Olá,

    Sua aplicação é Web Forms ou MVC?

    Dando uma visão um pouco mais genérica, a cada operação realizada na página, a tendência dela é recarregar, portanto perderia os dados salvos em uma variável, por exemplo. As estruturas que são usadas para armazenar temporariamente, podem ser a Session e o TempData (no caso do MVC). Porém para esse cenário eu não recomendaria guardar toda essa gama de dados nesses locais. Qual o problema de realizar a busca no banco de dados? A maioria dos sites/sistemas fazem isso. Você pode até ver uma solução para cache do conteúdo pesquisado, porém não sei se no seu caso é necessário.

    Qual é o motivo pelo qual não quer executar a query?


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Marcado como Resposta Junior Martins quarta-feira, 1 de fevereiro de 2017 09:32
    segunda-feira, 30 de janeiro de 2017 23:39
  • Ola
    Minha aplicação é webforms, minha aplicação ja trabalha recarregando os dados fazendo a busca no Banco de Dados para os filtros internos da pagina, é que como posso ter um volume grande de registros pensei nessa possibilidade de armazenar os dados e realizar a busca diretamente nos dados dessa pagina, até para verificar um outro formato sem uso de session por exemplo, por isso lancei a pergunta para verificar se existiria uma outra forma, mas a query esta sendo executada inclusive para ter um ganho faço uso de uma stored procedure para melhorar a performance.

    Abs.



    Junior

    • Marcado como Resposta Junior Martins quarta-feira, 1 de fevereiro de 2017 09:32
    terça-feira, 31 de janeiro de 2017 09:35
  • Como comentei, eu recomendaria fazer consultando no banco mesmo e focaria na otimização da query que faz essa busca (delimitando melhor os filtros, analisando e criando índices, etc). E possivelmente verificar uma solução para cache dessas informações. Lembrando que a procedure por si só não torna algo melhor ou mais rápido, o que vale é a query que está sendo executada dentro dela. Mas se preferir, vamos esperar a opinião de outros colegas que tem outros cases para contribuir.

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    terça-feira, 31 de janeiro de 2017 10:19
  • Junior, 

    Compartilho da mesma opinião do André, a questão de vc querer deixar os dados armazenados poderia te trazer problemas como dados desatualizados, uma vez que as informações podem sobre alteração a qualquer momento, poderia trabalhar com o view state ou ate mesmo o cache, porem n recomendo essa pratica, sempre terá que persistir os dados quando quiser uma informação mais especifica. 


    Diego Almeida Barreto&lt;/strong&gt; &lt;br/&gt; &lt;em&gt;System Analyst / Software Developer&lt;/em&gt; &lt;br/&gt; &lt;img &lt;/p&gt; &lt;/div&gt;

    • Marcado como Resposta Junior Martins quarta-feira, 1 de fevereiro de 2017 09:32
    terça-feira, 31 de janeiro de 2017 19:09

Todas as Respostas

  • Olá,

    Sua aplicação é Web Forms ou MVC?

    Dando uma visão um pouco mais genérica, a cada operação realizada na página, a tendência dela é recarregar, portanto perderia os dados salvos em uma variável, por exemplo. As estruturas que são usadas para armazenar temporariamente, podem ser a Session e o TempData (no caso do MVC). Porém para esse cenário eu não recomendaria guardar toda essa gama de dados nesses locais. Qual o problema de realizar a busca no banco de dados? A maioria dos sites/sistemas fazem isso. Você pode até ver uma solução para cache do conteúdo pesquisado, porém não sei se no seu caso é necessário.

    Qual é o motivo pelo qual não quer executar a query?


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Marcado como Resposta Junior Martins quarta-feira, 1 de fevereiro de 2017 09:32
    segunda-feira, 30 de janeiro de 2017 23:39
  • Ola
    Minha aplicação é webforms, minha aplicação ja trabalha recarregando os dados fazendo a busca no Banco de Dados para os filtros internos da pagina, é que como posso ter um volume grande de registros pensei nessa possibilidade de armazenar os dados e realizar a busca diretamente nos dados dessa pagina, até para verificar um outro formato sem uso de session por exemplo, por isso lancei a pergunta para verificar se existiria uma outra forma, mas a query esta sendo executada inclusive para ter um ganho faço uso de uma stored procedure para melhorar a performance.

    Abs.



    Junior

    • Marcado como Resposta Junior Martins quarta-feira, 1 de fevereiro de 2017 09:32
    terça-feira, 31 de janeiro de 2017 09:35
  • Como comentei, eu recomendaria fazer consultando no banco mesmo e focaria na otimização da query que faz essa busca (delimitando melhor os filtros, analisando e criando índices, etc). E possivelmente verificar uma solução para cache dessas informações. Lembrando que a procedure por si só não torna algo melhor ou mais rápido, o que vale é a query que está sendo executada dentro dela. Mas se preferir, vamos esperar a opinião de outros colegas que tem outros cases para contribuir.

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    terça-feira, 31 de janeiro de 2017 10:19
  • Junior, 

    Compartilho da mesma opinião do André, a questão de vc querer deixar os dados armazenados poderia te trazer problemas como dados desatualizados, uma vez que as informações podem sobre alteração a qualquer momento, poderia trabalhar com o view state ou ate mesmo o cache, porem n recomendo essa pratica, sempre terá que persistir os dados quando quiser uma informação mais especifica. 


    Diego Almeida Barreto&lt;/strong&gt; &lt;br/&gt; &lt;em&gt;System Analyst / Software Developer&lt;/em&gt; &lt;br/&gt; &lt;img &lt;/p&gt; &lt;/div&gt;

    • Marcado como Resposta Junior Martins quarta-feira, 1 de fevereiro de 2017 09:32
    terça-feira, 31 de janeiro de 2017 19:09
  • Ok eu faço uso dessas boas praticas de otimizar a query SQL e não só criar a query de qualquer maneira e colocar em um sistema ou uma procedure / view e etc ... a otimização da query SQL vem em primeiro lugar, mas como até disse no post tenho uma quantidade grande de registros consegui uma boa performance usando uma boa query SQL / Stored Procedure estou usando um DataTable para carregar as informações, não usei nenhum tipo de instrução de laço para carga de dados com tudo isso ja tenho um ganho de velocidade, a questão mesmo da "busca interna dos registros" sem usar muitas requisições ao Banco de Dados era a minha duvida sobre um formato legal para isso, agradeço as respostas de vocês e como sempre foram bem proveitosas essas trocas de informações.

    Abs.


    Junior

    quarta-feira, 1 de fevereiro de 2017 09:32
  • junior,

    uma ideia para melhorar ainda mais a sua proc é criar índices para os registros.


    Diego Almeida Barreto&lt;/strong&gt; &lt;br/&gt; &lt;em&gt;System Analyst / Software Developer&lt;/em&gt; &lt;br/&gt; &lt;img &lt;/p&gt; &lt;/div&gt;

    quarta-feira, 1 de fevereiro de 2017 12:03