Fórum Validar Registro Antes de Salvar #475881
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
Curtir tópico
+ 0Posts
10/04/2014
Joel Rodrigues
Gostei + 0
10/04/2014
Jair Souza
Está faltando algo, mas não consegui identificar...
Gostei + 0
10/04/2014
Mateus Moraes
throw new Exception("Nome ou Endereço já Cadastrados !");que vai funcionar
Gostei + 0
10/04/2014
Jair Souza
Gostei + 0
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.
Gostei + 0
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...
Gostei + 0
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.
Gostei + 0
14/04/2014
Jair Souza
Gostei + 0
14/04/2014
Mateus Moraes
Se a condição entrar dentro do seu
if (reader.Read())
Gostei + 0
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 = "";
}
}
Gostei + 0
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();
}
}
Gostei + 0
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);
Gostei + 0
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.
Gostei + 0
30/05/2014
Jair Souza
Como fazer isto baseado no código que já tenho ?
Gostei + 0
03/06/2014
Jair Souza
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)