Como fazer else if

05/06/2014

0

Pessoal consegui chegar até aqui com este código, mas não sei como concluir, alguém sabe ?

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())
                {
                    else if (nomeTextBox.Text =              )
				{
				  MessageBox.Show("Nome já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        	  nomeTextBox.Focus();
                             nomeTextBox.ForeColor = Color.Red;
				}
		      else if (loginTextBox.Text =		)
				{
				  MessageBox.Show("Login já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
			         loginTextBox.Focus();
                             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);
Jair Souza

Jair Souza

Responder

Posts

05/06/2014

Kelvin Ott

O que exatamente você quer fazer, houve algum erro?
Responder

05/06/2014

Jair Souza

Está funcionando e avisa nome OU login já cadastrado, mas eu quero especificar exatamente quando é o "Nome" que já está cadastrado e quando é o "Login"...
Responder

05/06/2014

Jair Souza

...veja como iniciei os "else if " dentro dos parenteses (nomeTextBox.Text = ), deve ser igual a que, considerando o read acima... ?
Responder

05/06/2014

Kelvin Ott

Tenta isso, se funcionar da um retorno.

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())
		{
			
			if(nomeTextBox.Text == reader["nome"].ToString())
			{
				MessageBox.Show("Nome já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				nomeTextBox.Focus();
				nomeTextBox.ForeColor = Color.Red;
				
				
			}
			else if(loginTextBox.Text == reader["login"].ToString())
			{
				MessageBox.Show("Login já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				loginTextBox.Focus();
				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);
		}
		
	}
}

 
Responder

05/06/2014

Jair Souza

Infelizmente já havia tentado assim.
Responder

05/06/2014

Kelvin Ott

Qual é o erro que da??
Responder

05/06/2014

Jair Souza

Row no exists...
Responder

05/06/2014

Kelvin Ott

Qual é o tipo da sua reader?
Responder

05/06/2014

Jair Souza

Desculpe..., como assim ?
Responder

05/06/2014

Kelvin Ott

reader = comando.ExecuteReader(CommandBehavior.CloseConnection);


Como que tu declarou esse reader?
Responder

05/06/2014

Kelvin Ott

Foi mal, passou despercebido e que to na correria, já dou uma olhada pra você hehehe.
Responder

05/06/2014

Kelvin Ott

Tenta mudar isso ve se vai...

OleDbCommand comando = new OleDbCommand("SELECT Nome as nome, Login as login FROM Funcionario WHERE Nome = @nome OR Login = @login", conexao);
Responder

05/06/2014

Jair Souza

Está assim, e não funcionou...vai direto pro else e salva tudo sempre... :

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 as nome, Login as 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()) && (BtnAdicionar.Checked == true)) //se leitor tem linhas e se leitor leu.
                {
                    if (nomeTextBox.Text == reader["Nome"].ToString())
                    {
                        MessageBox.Show("Nome já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        nomeTextBox.Focus();
                        nomeTextBox.ForeColor = Color.Red;
                    }
                    else if (loginTextBox.Text == reader["Login"].ToString())
                    {
                        MessageBox.Show("Login já Cadastrado !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        loginTextBox.Focus();
                        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);
Responder

06/06/2014

Kelvin Ott

Debuga teu código e diz em qual cláusula do teu if que faz ele não entrar.
Se tua query não está retornando nada, quer dizer que não existe ninguém cadastrado com esse nome.
Responder

06/06/2014

Jair Souza

Deixando como abaixo, funciona e não deixa salvar...mas como quero especificar qual campo já existe....

[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20140606-075434.png[/img]
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar