none
Pegando informações do DataGrid RRS feed

  • Pergunta

  • Estou tentando jogar as informações do meu DataGrid para textbox, porem esse erro aparece : "{"Referência de objeto não definida para uma instância de um objeto."}". Já utilizei o mesmo codigo em outros form e funciona perfeitamente porem nesse form nao funciona! o codigo é esse..

    private void Atualizar_Click(object sender, EventArgs e)
            {
                //se nao for selecionado nenhuma placa acontece isso
                if (dtClientes.SelectedCells.Count <= 0)
                {
                    MessageBox.Show("Nenhuma cliente foi selecionado.", "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (dtClientes.SelectedCells.Count > 0)
                {
                    if (dtClientes.CurrentRow.Cells[3].Value.ToString() != "Física")
                    {
                        // ir para proxima pagina realizar alteracao dos dados
                        tbClientes.SelectedIndex = 1;
                        Registrar.Visible = false;
                        Salvar.Visible = true;
                        //placa selecionada
                        Rua.Text = dtClientes.CurrentRow.Cells[0].Value.ToString();
                    }
                }
            }

    Alguem poderia me ajudar! Agradeço desde já

    segunda-feira, 17 de abril de 2017 17:51

Respostas

  • Se este grid é editável, e o valor desta célula foi editado imediatamente antes do click no botão, pode ser que o valor da célula ainda não foi atualizado de fato. Neste caso, no início do evento você poderia adicionar o código dtClientes.EndEdit();. Se não for este o caso, informe mais algum detalhe sobre como este grid funciona na sua aplicação, para entendermos melhor o cenário.

    segunda-feira, 17 de abril de 2017 18:24

Todas as Respostas

  • Olá!

       Esta mensagem está sendo exibida porque não há valor na currentrow na posição 0. Você conferiu se havia uma linha selecionada, mas isto não garante que haverá valor na célula. Para evitar o erro você pode escrever o código da seguinte forma (caso não queira verificar antes se existe valor na célula):

    Rua.Text = dtClientes.CurrentRow?.Cells[0]?.Value?.ToString() ?? "";

    Bom trabalho!


    • Editado Rodrigo CdS segunda-feira, 17 de abril de 2017 18:05
    segunda-feira, 17 de abril de 2017 18:04
  • O problema é no "else if (dtClientes.CurrentRow.Cells[3].Value.ToString() != "Física")"

    Porque o meu datagrid tem informação, porem ele esta voltando como null, isso nao estou entendendo.

    segunda-feira, 17 de abril de 2017 18:08
  • Se este grid é editável, e o valor desta célula foi editado imediatamente antes do click no botão, pode ser que o valor da célula ainda não foi atualizado de fato. Neste caso, no início do evento você poderia adicionar o código dtClientes.EndEdit();. Se não for este o caso, informe mais algum detalhe sobre como este grid funciona na sua aplicação, para entendermos melhor o cenário.

    segunda-feira, 17 de abril de 2017 18:24
  • Esse Datagrid nao é editável, ele so apresenta as informacões do cliente! porem ao clicar na linha do cliente as informacões do mesmo tende a preencher os campos de textbox com as informacões cadastradas!!

    codigo:

    private void Atualizar_Click(object sender, EventArgs e)
            {
                //se nao for selecionado nenhuma placa acontece isso
                if (dtClientes.SelectedCells.Count <= 0)
                {
                    MessageBox.Show("Nenhuma cliente foi selecionado.", "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    // ir para proxima pagina realizar alteracao dos dados
                    tbClientes.SelectedIndex = 1;
                    Registrar.Visible = false;
                    Salvar.Visible = true;
                    //placa selecionada
                    Rua.Text = dtClientes.CurrentRow.Cells[0].Value.ToString();
                }
            }

    segunda-feira, 17 de abril de 2017 18:33
  • Bom dia Guilherme,

    Conseguiu resolver este problema?

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 20 de abril de 2017 12:39
    Moderador