none
Evitar nome duplicado na DataGridView no CSharp. RRS feed

  • Pergunta

  • Bom dia Galera,

    Alguém pode me ajudar?
    Estou com uma dúvida em relação ao DataGridView.
    Quando vou digitar ou adicionar algum item no meu DataGridView está sendo cadastro normalmente, certo?.
    O que foi solicitado para mim fazer que quando for efetuar um registro dentro de "um campo" da DataGridView, queria que não repetisse o "nome do campo" quando o usuário for digitar algum registro repetido dentro do campo da "DataGridView", quando ocorrer este erro, ele precisa aparecer a mensagem de não gravar o formulário do registro que foi feito, pois naquele campo há um nome repetido e por fim mostra a "messagebox" que está repetido dentro deste campo da "DataGridView".

    Obs: Será que preciso fazer alguma condição de if/else no código do formulário, talvez pode ser na classe onde declarei as strings, no próprio botão de gravar, onde existe um método já criado?

    Desde já agradeço

    Milton Honji
    quarta-feira, 1 de julho de 2015 12:36

Respostas

  • Milton Se eu te entendi o código abaixo te ajuda:

      foreach (DataGridViewRow linha in dataGridView1.Rows)
                                {
    
                                    if (linha.Index != dataGridView1.CurrentRow.Index)//Verifica se já existe uma primeira linha para fazer a varredura.
                                    {
                                        if (linha.Cells[1].Value.ToString().Contains(TEXTOQUENAOPODEREPETIR)) // Se a Celula "1" da linha corrente contem o valor "TEXTOQUENAOPODEREPETIR" a mensagem abaixo é apresentada
                                        {
                                            MessageBox.Show("O campo está duplicado.", "Validando dados", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                            dataGridView1.CurrentRow.Cells[1].Value = ""; //Da o valor nulo a celula 1 da linha corrente
    
                                        }
                                    }
    
    
    
                                }

    • Sugerido como Resposta Renato Cristiano segunda-feira, 6 de julho de 2015 15:24
    • Marcado como Resposta Cristopher C I_ segunda-feira, 6 de julho de 2015 18:26
    quarta-feira, 1 de julho de 2015 13:30

Todas as Respostas

  • Milton Se eu te entendi o código abaixo te ajuda:

      foreach (DataGridViewRow linha in dataGridView1.Rows)
                                {
    
                                    if (linha.Index != dataGridView1.CurrentRow.Index)//Verifica se já existe uma primeira linha para fazer a varredura.
                                    {
                                        if (linha.Cells[1].Value.ToString().Contains(TEXTOQUENAOPODEREPETIR)) // Se a Celula "1" da linha corrente contem o valor "TEXTOQUENAOPODEREPETIR" a mensagem abaixo é apresentada
                                        {
                                            MessageBox.Show("O campo está duplicado.", "Validando dados", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                            dataGridView1.CurrentRow.Cells[1].Value = ""; //Da o valor nulo a celula 1 da linha corrente
    
                                        }
                                    }
    
    
    
                                }

    • Sugerido como Resposta Renato Cristiano segunda-feira, 6 de julho de 2015 15:24
    • Marcado como Resposta Cristopher C I_ segunda-feira, 6 de julho de 2015 18:26
    quarta-feira, 1 de julho de 2015 13:30
  • Obrigado, vou tentar aqui, qualquer coisa te aviso e vou conversar com o supervisor se posso mandar o código.
    quarta-feira, 1 de julho de 2015 13:53
  • Seria interessante saber como você está adicionando as linhas do DataGridView, pois dependendo do modo, pode-se simplificar essa verificação com um simples método com Lambda.

    Joel Rodrigues MSP, MCP, MTA Editor geral .NET Magazine E Easy .NET Magazine

    quarta-feira, 1 de julho de 2015 14:12
  • Outra dúvida se não for incomodar você,

    Preciso criar um código dentro Grid tbm?.

    Pois onde trabalho utilizo o VS2003

    Milton Honji.

    quarta-feira, 1 de julho de 2015 14:12
  • Pode se criar o código com base no dataGridview relacionado a vários evento: keypress, keydown, keyup, CellLeave

    e uma imensa possibilidade.

    quarta-feira, 1 de julho de 2015 14:17
  • Boa Tarde!

    Estou usando essa codigo mais  ele apresenta um erro

    Erro: referencia do objeto não definida para uma instancia.

    Alguém tem uma solução.

    quarta-feira, 13 de fevereiro de 2019 16:55