none
Datagridview RRS feed

  • Discussão Geral

  • Pessoal

         Carreguei um datagridview com Datareader, linha a linha, só que estou precisando identificar em uma determinada hora quando o usuário solicita o conteúdo de uma celula em relação de outras, hoje estou percorrendo linha a linha utilizando um for com o count do datagrid, e fazendo a consistência, existiria outra maneira de identificar mais rapido, ou com mais precisão isto ?

       Exemplo : Status dos Documentos diferente de outros no grid.

    • Tipo Alterado Giovani Cr quarta-feira, 4 de dezembro de 2013 18:01
    sexta-feira, 29 de novembro de 2013 18:05

Todas as Respostas

  • Com um foreach seria outra maneira, ou você poderia popular sua grid com um List<> e usar linq para essa verificação. 
    sexta-feira, 29 de novembro de 2013 18:12
  • Tudo vai depender da sua regra de negócio!

    Eu faria um SQL e traria o dado correto com o filtro! acredito ser mais rápido!

    Mas, como eu não sei como se deve fazer fica dificil falar neh!!!???

    Será que pode ou não?


    Fulvio Cezar Canducci Dias

    sexta-feira, 29 de novembro de 2013 23:46
  • Fulvio

     

          Carregar os dados por SQL, neste caso não daria certo, pois as alterações só estão no grid, onde depois após a confirmação é que realmente vão para a base de dados.

          Como carreguei os dados pelo datareader, no meu datagridview existia alguma maneira de utilizar linq com os dados do datagridview ?

    segunda-feira, 2 de dezembro de 2013 11:38
  • Use um While e varra sua grid até todas as condições serem atendidas!!!

    é mais rápido do que for each ou for! porque a lógica desse estrutura é varrer toda sua grid e o while se pode ir até aonde satisfazer todas suas condições ...


    Fulvio Cezar Canducci Dias


    segunda-feira, 2 de dezembro de 2013 12:17
  • Fúlvio/Pessoal

        A sua dica, foi muito boa, poderia tirar algumas dúvidas que me surgiu agora :

    1) Quando utilizo for each de um datagridview onde ele cria um objeto da linha do datagridview, e eu atualizo está linha é realmente normal ele atualizar o datagridview ?

    2) E realmente o for each seria mais rápido do que for ?

    3) E percebi que o while foi mais rapido ainda, isto é realmente real, mesmo percorrendo todas as linhas do datagridview ?

        For Each row_Grid As DataGridViewRow In Me.dgv_Diversos_Empresa.Rows
                If row_Grid.Cells("ic_Selecao").Value Then
    
                   cl_Doc_a_Pagar.ic_Status_Financeiro = row_Grid.Cells("ic_Status_Financeiro").Value
                   row_Grid.Cells("ic_Status_Financeiro").Value = cl_Doc_a_Pagar.ds_Display_Status_Financeiro
    
                End If
             Next

    segunda-feira, 2 de dezembro de 2013 18:32
  • 1 - Atualiza

    2 - Nunca testei mas, me parece ser a mesma coisa

    3 - While indicado para que você tenha maior controle e não precisar rodar ele em todos os itens do gridview!


    Fulvio Cezar Canducci Dias

    segunda-feira, 2 de dezembro de 2013 19:01
  • Fúlvio

       No caso da questão 1) ele atualiza porque ele fica vinculado, este seria o termo certo para dizer sobre isto ?

    , e na questão 2), estava verificando o link abaixo, e fiquei na dúvida :

    http://www.codeproject.com/Tips/531893/For-Vs-Foreach-Benchmark-2013

    3) ok.

    segunda-feira, 2 de dezembro de 2013 19:15
  • 1) não está vinculado a nada está sendo criando em tempo de execução igual você mesmo relatou!

    então alterou o row da grid somente isso.



    Fulvio Cezar Canducci Dias

    segunda-feira, 2 de dezembro de 2013 19:19
  • Fúlvio

        Eu realmente fiquei muito impressionado, pois tinha visto algo anteriormente a assim e fiquei de analisar melhor, e vi que a coisa, realmente funciona assim conforme você está me confirmando, muito obrigado pelas explicações e sua atenção.

       Já na questão 2) você tinha visto algum comentario sobre qual seria o mais rápido ?

    segunda-feira, 2 de dezembro de 2013 19:25
  • Fúlvio

        Eu realmente fiquei muito impressionado, pois tinha visto algo anteriormente a assim e fiquei de analisar melhor, e vi que a coisa, realmente funciona assim conforme você está me confirmando, muito obrigado pelas explicações e sua atenção.

       Já na questão 2) você tinha visto algum comentario sobre qual seria o mais rápido ?

    Eu já fiz exemplos meus e não tem muita diferença mas isso vai depender muito também do volume de dados e da maneira performática de programar!

    Tem muita gente fazendo errado e isso degrada muito a aplicação ...


    Fulvio Cezar Canducci Dias

    segunda-feira, 2 de dezembro de 2013 19:28