Usuário com melhor resposta
Não deixar preencher mesmo valor em colunas DataGridView

Pergunta
-
Estou desenvolvendo um sistema onde a única coluna Editável será a Ramal, conforme imagem.
Como fazer para que ao momento que eu digitar um valor ele avise que não pode ser o mesmo número? E também que mostre qual código está sendo usado o número em questão?
- Editado Paulo Antunes de Souza quarta-feira, 21 de outubro de 2020 19:40
Respostas
-
-
Consegui fazendo este método:
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { string v = this.dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString(); foreach (DataGridViewRow row in this.dataGridView1.Rows) { if (row.Index >= this.dataGridView1.Rows.Count - 1) break; if (row.Cells[3].Value?.ToString() == v && row.Index != e.RowIndex) { MessageBox.Show("Opa, já existe um ramal igual a esse"); this.dataGridView1[e.ColumnIndex, e.RowIndex].Value = null; break; } } }
- Marcado como Resposta Paulo Antunes de Souza quinta-feira, 29 de outubro de 2020 11:12
Todas as Respostas
-
eu uso assim para verificar se algum nome existe antes de criar um novo
//class Controller public static string Incluir(ModeloCliente cliente) { string Saida = ""; DALConexao conexao = new DALConexao(DadosDaConexao.StringDaConexao); SqlCommand cmd = new SqlCommand(); conexao.Conectar(); cmd.CommandText = "insert into Clientes (nome, tipo, email)" + " values (@Nome, @Tipo, @Email)"; cmd.Parameters.AddWithValue("@nome", cliente.Nome); cmd.Parameters.AddWithValue("@tipo", cliente.Tipo); cmd.Parameters.AddWithValue("@email", cliente.Email); if (VerificarExistencia(cliente.Nome) == false) { try { cliente.ID_Cli = Convert.ToInt32(cmd.ExecuteNonQuery()); conexao.Desconectar(); Saida = "Cliente registrada com sucesso!"; } catch (Exception exc) { Saida = "Ocorreu um erro inesperado: " + exc.Message; } return Saida; } else { //Se o a pessoa jurídica já for cadastrada caira nesse código como retorno e nada sera salvo. Saida = "Cliente já cadastrada."; return Saida; } } public static bool VerificarExistencia(string Nome) { DALConexao conexao = new DALConexao(DadosDaConexao.StringDaConexao); bool PessoaEncontrada = false; DataTable Tabela; SqlCommand cmd = new SqlCommand(); Tabela = new DataTable("CVlientes"); cmd.CommandText = "select * from Clienteswhere Nome = @nome"; cmd.Parameters.AddWithValue("@nome", Nome); SqlDataReader dr; try { cmd.Connection = conexao.ObjetConexao; conexao.Conectar(); dr = cmd.ExecuteReader(); if (dr.HasRows) { PessoaEncontrada = true; } } catch (Exception) { PessoaEncontrada = false; } conexao.Desconectar(); return PessoaEncontrada; } // form Frm_Clientes private void salvar() { if (!string.IsNullOrWhiteSpace(Txt_Nome.Text)) { string Saida = ControleCliente.Incluir(PreencherInformacoes()); MessageBox.Show(Saida, "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); LimparCampos(); AtualziarLsitaDeClientes(); } else { MessageBox.Show("Insira um nome!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private ModeloCliente PreencherInformacoes() { ModeloCliente PessoaBase = new ModeloCliente(); PessoaBase.Nome = Txt_Nome.Text; PessoaBase.Email = Txt_Email.Text; PessoaBase.Tipo = Txt_Tipo.Text; PessoaBase.ID_Cli = IDCarregado; return PessoaBase; } private void btn_Salvar_Click(object sender, EventArgs e) { if (!ControleCliente.VerificarExistencia(Txt_Nome.Text)) //Se ele não existir crie um novo, senão edite apenas { salvar(); } else { editar(); } AtualizarInformacoesDoGrid(); }
talvez ter ajude
-
-
-
-
Consegui fazendo este método:
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { string v = this.dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString(); foreach (DataGridViewRow row in this.dataGridView1.Rows) { if (row.Index >= this.dataGridView1.Rows.Count - 1) break; if (row.Cells[3].Value?.ToString() == v && row.Index != e.RowIndex) { MessageBox.Show("Opa, já existe um ramal igual a esse"); this.dataGridView1[e.ColumnIndex, e.RowIndex].Value = null; break; } } }
- Marcado como Resposta Paulo Antunes de Souza quinta-feira, 29 de outubro de 2020 11:12