Validar Registro Antes de Salvar
10/04/2014
0
Como posso resolver isto ?
Windows Form C#.
Código :
void ValidarRegistro(string nome, string endereco) OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\\BDBiblioteca2.mdb"); conexao.Open(); OleDbCommand Comando = new OleDbCommand("SELECT Nome, Endereco From Locatario WHERE Nome = nome and Endereco = endereco", conexao); OleDbDataReader reader = null; reader = comando.ExecuteReader(); try { if (reader.Read()) { string leitura1 = reader["Nome"].ToString(); string leitura2 = reader["Endereco"].ToString(); throw new Exception("Nome ou Endereço já Cadastrados !"); } catch (OleDbException exp) { exp.Message.ToString(); } finally } conexao.Close(); reader.Close(); }
Chamo o método no botão Salvar :
private void BtnSalvar_Click(object sender, EventArgs e) { ValidarRegistro(nome,endereco); { try { if (nomeTextBox.Text != "") { this.Validate(); this.locatarioBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.bDBiblioteca2DataSet);
Jair Souza
Posts
10/04/2014
Joel Rodrigues
10/04/2014
Jair Souza
Está faltando algo, mas não consegui identificar...
10/04/2014
Mateus Moraes
throw new Exception("Nome ou Endereço já Cadastrados !");
que vai funcionar
10/04/2014
Jair Souza
11/04/2014
Pjava
//throw new Exception("Nome ou Endereço já Cadastrados !");
Ou remova-a. Eu faria isso. Código que não funciona, deve ser removido e não comentado. Comentário assim é lixo. Na minha empresa já teria levado um esculacho daqueles ao comentar código que não serão usados. Comentários somente a nível de informação.
11/04/2014
Jair Souza
Mas sem esta linha não vou ser avisado, quando houver um registro com o "nome" e "endereço" já cadastrados...
12/04/2014
Mateus Moraes
//throw new Exception("Nome ou Endereço já Cadastrados !");
Ou remova-a. Eu faria isso. Código que não funciona, deve ser removido e não comentado. Comentário assim é lixo. Na minha empresa já teria levado um esculacho daqueles ao comentar código que não serão usados. Comentários somente a nível de informação.
Para bom entendedor comenta funcionou remova simples assim.
14/04/2014
Jair Souza
14/04/2014
Mateus Moraes
Se a condição entrar dentro do seu
if (reader.Read())
14/05/2014
Jair Souza
O que está errado, que ele não faz a validação do segundo em diante...está deixando salvar mesmo sendo um nome já existente no banco...
private void BtnSalvar_Click(object sender, EventArgs e) { tabControl1.Focus(); Restaura_Cor_textBox(); OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\\BDBiblioteca.mdb"); conexao.Open(); OleDbCommand comando = new OleDbCommand("SELECT Nome From Funcionario", conexao); OleDbDataReader reader = null; reader = comando.ExecuteReader(); if (reader.Read()) { string leitura1 = reader["Nome"].ToString(); conexao.Close(); reader.Close(); try { if ((BtnAlterar.Checked == true) || ((leitura1 != nomeTextBox.Text) && (senhaTextBox.Text == ConfSenhatextbox.Text))) { this.Validate(); this.funcionarioBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.bDBibliotecaDataSet); MessageBox.Show("Registro Salvo com Sucesso !", "Salvar", MessageBoxButtons.OK, MessageBoxIcon.Information); NoMoveReg(); DesabilitaCampos(); this.tabControl1.TabPages.Add(this.tabPage2); ConfSenhatextbox.ForeColor = Color.Black; } if (senhaTextBox.Text != ConfSenhatextbox.Text) { MessageBox.Show("Senhas não são Iguais !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning); ConfSenhatextbox.ForeColor = Color.Red; ConfSenhatextbox.Focus(); } if ((leitura1 == nomeTextBox.Text) && (BtnAlterar.Checked == false)) { MessageBox.Show("Nome já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning); nomeTextBox.Focus(); } } catch (Exception ex) { MessageBox.Show("" + ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); DesabilitaCampos(); } BtnPrimeiro.Enabled = true; BtnAnterior.Enabled = true; TBRegAtual.Enabled = true; BtnProximo.Enabled = true; BtnUltimo.Enabled = true; BtnAtualizar.Enabled = true; BtnExcluir.Enabled = true; textBox1.Text = ""; } }
16/05/2014
Jair Souza
private void BtnSalvar_Click(object sender, EventArgs e) { tabControl1.Focus(); Restaura_Cor_textBox(); try { OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\\BDBiblioteca.mdb"); OleDbCommand comando = new OleDbCommand("SELECT Nome,Login From Funcionario", conexao); conexao.Open(); OleDbDataReader reader = comando.ExecuteReader(CommandBehavior.CloseConnection); if (reader.HasRows) { if (reader.Read()) { string leitura1 = reader["Nome"].ToString(); string leitura2 = reader["Login"].ToString(); if ((BtnAlterar.Checked == true) || (leitura1 != nomeTextBox.Text) && (leitura2 != loginTextBox.Text) && (senhaTextBox.Text == ConfSenhatextbox.Text)) { this.Validate(); this.funcionarioBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.bDBibliotecaDataSet); MessageBox.Show("Registro Salvo com Sucesso !", "Salvar", MessageBoxButtons.OK, MessageBoxIcon.Information); NoMoveReg(); DesabilitaCampos(); this.tabControl1.TabPages.Add(this.tabPage2); ConfSenhatextbox.ForeColor = Color.Black; } if (senhaTextBox.Text != ConfSenhatextbox.Text) { MessageBox.Show("Senhas não são Iguais !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning); ConfSenhatextbox.ForeColor = Color.Red; ConfSenhatextbox.Focus(); } if ((BtnAlterar.Checked == false) && (leitura1 == nomeTextBox.Text)) { MessageBox.Show("Nome já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning); nomeTextBox.Focus(); } if ((BtnAlterar.Checked == false) && (leitura2 == loginTextBox.Text)) { MessageBox.Show("Login já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning); loginTextBox.Focus(); } } catch (Exception ex) { MessageBox.Show("" + ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); this.tabControl1.TabPages.Add(this.tabPage2); DesabilitaCampos(); NoMoveReg(); } BtnPrimeiro.Enabled = true; BtnAnterior.Enabled = true; TBRegAtual.Enabled = true; BtnProximo.Enabled = true; BtnUltimo.Enabled = true; BtnAtualizar.Enabled = true; BtnExcluir.Enabled = true; textBox1.Text = ""; BtnAlterar.Checked = false; } reader.Close(); } }
19/05/2014
Jair Souza
private void BtnSalvar_Click(object sender, EventArgs e) { try { OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\\BDBiblioteca.mdb"); OleDbCommand comando = new OleDbCommand("SELECT Nome, Login From Funcionario", conexao); conexao.Open(); OleDbDataReader reader = null; reader = comando.ExecuteReader(CommandBehavior.CloseConnection); { if (reader.HasRows) { if (reader.Read()) { string leitura1 = reader["Nome"].ToString(); string leitura2 = reader["Login"].ToString(); MessageBox.Show(leitura1); MessageBox.Show(leitura2);
30/05/2014
Jair Souza
private void BtnSalvar_Click(object sender, EventArgs e) { try { OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\\BDBiblioteca.mdb"); OleDbCommand comando = new OleDbCommand("SELECT Nome, Login FROM Funcionario WHERE Nome = @nome OR Login = @login", conexao); comando.Parameters.AddWithValue("@nome", nomeTextBox.Text); comando.Parameters.AddWithValue("@login", loginTextBox.Text); conexao.Open(); OleDbDataReader reader = null; reader = comando.ExecuteReader(CommandBehavior.CloseConnection); if ((reader.HasRows) && (reader.Read())) //se leitor tem linhas e se leitor leu. { MessageBox.Show("Nome ou Login já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning); nomeTextBox.Focus(); nomeTextBox.ForeColor = Color.Red; loginTextBox.ForeColor = Color.Red; } else if (senhaTextBox.Text != ConfSenhatextbox.Text) { MessageBox.Show("Senhas não são Iguais !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning); ConfSenhatextbox.Focus(); ConfSenhatextbox.ForeColor = Color.Red; } else { this.Validate(); this.funcionarioBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.bDBibliotecaDataSet); MessageBox.Show("Registro Salvo com Sucesso !", "Salvar", MessageBoxButtons.OK, MessageBoxIcon.Information); } reader.Close(); } catch (Exception ex) { MessageBox.Show("" + ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
Mas quero melhorar, informando especificamente quando é o Nome que já existe ou quando é o Login que já existe.
30/05/2014
Jair Souza
Como fazer isto baseado no código que já tenho ?
Clique aqui para fazer login e interagir na Comunidade :)