none
DataGridViwer está Vazio RRS feed

  • Pergunta

  • Boa tarde pessoal:

    Gostaria de saber como eu faço para verificar se um DataGridViwer está vazio.

                    dgvConsulta.DataSource = obj1.PesquisaNumeroFilialCpfCnpjClienteCodigoProdutoNumeroMovimento(nCodigoFilial, cCpfCnpj_Cliente, cCodigoProduto, nNumero_Movimento);
                    if (dgvConsulta.RowCount == 2) // Se entrar aqui é porque não existe nenhum produto com o Código que eu informei
                    {
                        txtQtdInicial.Text = cVolumesEstoque;
                        txtPesoInicial.Text = cPesoEstoque;
                        return;
                    }
    

    Me passaram essa rotina, porém, mesmo não tendo nenhum registro no DataGridViwer o retorno é 2. O que eu posso está fazendo de errado:

    Se tem um registro na DataGrid o retorno é 2, não deveria ser 1?

    se não tem nenhum registro no DataGrid o retorno é 2, não deveria se 0?

    Garibaldo


    terça-feira, 8 de dezembro de 2015 16:24

Respostas

  • Boa noite.

    No lugar de contar as linhas da grid, conte o número de itens retornados do método (PesquisaNumero, etc.). Normalmente as grids criam algumas linhas a mais ao Bindar o Source; fica complicado de verificar pelas linhas geradas.


    Att., Rafael Simor


    • Editado SimorC quarta-feira, 9 de dezembro de 2015 01:28
    • Sugerido como Resposta Danilo Telles quarta-feira, 9 de dezembro de 2015 10:47
    • Marcado como Resposta Marcos SJ quarta-feira, 9 de dezembro de 2015 13:52
    terça-feira, 8 de dezembro de 2015 22:27

Todas as Respostas

  • Garibaldo boa tarde

    sendo rápido eu faria dessa forma

           dgvConsulta.DataSource = obj1.PesquisaNumeroFilialCpfCnpjClienteCodigoProdutoNumeroMovimento(nCodigoFilial, cCpfCnpj_Cliente, cCodigoProduto, nNumero_Movimento);
    dgvConsulta.DataBind();
                    if (dgvConsulta.Rows.Count == 2) // Se entrar aqui é porque não existe nenhum produto com o Código que eu informei
                    {
                        txtQtdInicial.Text = cVolumesEstoque;
                        txtPesoInicial.Text = cPesoEstoque;
                        return;
                    }

    Espero ter ajudado. se foi útil marca como resposta por favor.

    Abraço

    terça-feira, 8 de dezembro de 2015 16:47
  • Como eu habilito o DataBind?

    terça-feira, 8 de dezembro de 2015 17:00
  • tenta executar sem o DataBind();

    que na verdade ele serve para dar um refresh no grid antes de fazer a consulta.


    terça-feira, 8 de dezembro de 2015 18:04
  • Então sem o DataBind, já está sendo feito, porém, dá o problema que eu mencionei em minha pergunta.

     
    terça-feira, 8 de dezembro de 2015 18:08
  • no código informado estáva errado a sintaxe

    agora o DataBind não é habilitado, se estiver estanciado 

    using System; vai funcionar normal.

    vc está utilizando web form?

    terça-feira, 8 de dezembro de 2015 18:15
  • Estou utilizando o windows form.

    terça-feira, 8 de dezembro de 2015 18:24
  • vc poderia tentar dar um, 
    dgvConsulta.Refresh();
    • Sugerido como Resposta Marcos SJ terça-feira, 8 de dezembro de 2015 18:43
    terça-feira, 8 de dezembro de 2015 18:38
  • Boa noite.

    No lugar de contar as linhas da grid, conte o número de itens retornados do método (PesquisaNumero, etc.). Normalmente as grids criam algumas linhas a mais ao Bindar o Source; fica complicado de verificar pelas linhas geradas.


    Att., Rafael Simor


    • Editado SimorC quarta-feira, 9 de dezembro de 2015 01:28
    • Sugerido como Resposta Danilo Telles quarta-feira, 9 de dezembro de 2015 10:47
    • Marcado como Resposta Marcos SJ quarta-feira, 9 de dezembro de 2015 13:52
    terça-feira, 8 de dezembro de 2015 22:27