Usuário com melhor resposta
Evitar nome duplicado na DataGridView no CSharp.

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
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
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
-
-
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
-
-
-