Erro de Login com MySQL

07/01/2014

0

Estou com um erro na hora de realizar login, criei uma classe chamada clsBanco onde recebe por meio de outra Classe as informações de Usuario e Senha, estava utilizando Firebird e estava funcionando perfeitamente agora migrei para o MySQL e está dando um erro vou postar :

Meu método para realizar Login:

public static void login (clsLogin log, frmPrincipal principal)
        {
            using(MySqlConnection conexaoMySQL = clsBanco.getInstancia().getConexao())
            {
                try
                {
                    
                    string mSQL = "SELECT count(*) FROM USUARIOS WHERE USUARIO=@usuario AND SENHA=@senha";
                    MySqlCommand cmd = new MySqlCommand(mSQL, conexaoMySQL);
                    cmd.Parameters.Add("@usuario",MySqlDbType.VarChar).Value = log.Usuario;
                    cmd.Parameters.Add("@senha", MySqlDbType.VarChar).Value = log.Senha;
                    conexaoMySQL.Open();
                    int i = (int)cmd.ExecuteScalar();

                    if (i > 0)
                    {
                        principal.Enabled = true;
                        principal.Show();
                    }
                    else
                    {
                        MessageBox.Show("Usuario/Senha estão inválidos.", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Question);
                    }

                    }
                catch (FbException ex)
                {
                    throw ex;
                }
                finally
                {
                    conexaoMySQL.Close();
                }
            }



Agora a ação de Clique do meu botão entrar:

private void btnEntrar_Click(object sender, EventArgs e)
        {
            
            try
            {
                clsLogin login = new clsLogin();
                frmPrincipal p = new frmPrincipal();
                login.Usuario = txtUsuario.Text;
                login.Senha = txtSenha.Text;
                clsBanco.login(login, p);
                p.Label(txtUsuario.Text);

                if (p.Enabled == true)
                {
                    Visible = false;
                }
                else
                { 
                
                }
            }

            catch (Exception erro)
            {
                MessageBox.Show("Erro de conexão com banco de dados" + erro.Message, "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Question);
            }
        }
Raniel Gomes

Raniel Gomes

Responder

Posts

07/01/2014

Raniel Gomes

Esqueci de mandar a imagem com o erro rsrsrs.[img:descricao=Erro de Login]http://arquivo.devmedia.com.br/forum/imagem/331292-20140107-194332.jpg[/img]
Responder

08/01/2014

Raniel Gomes

Alguém tem alguma solução?
Responder

08/01/2014

Leandro Chiodini

Raniel,

Cara depura o codigo e ve se a linha que esta dando o erro é na linha 13.

e posta ai.
Acho que esse Cast que tais fazendo de (int) é o problema.

att
Chiodini
Responder

08/01/2014

Leandro Chiodini

Tenta fazer ali no reader
o seguinte



MySqlDataReader reader = cmd.ExecuteReader();
int res = reader.GetInt16(0); 



Att
Chiodini
Responder

08/01/2014

Aluisio Cavalcante

mas pq da esse erro? pensei que tivesse certo o codigo.
Responder

09/01/2014

Leandro Chiodini

Então se for realmente nesta linha,
O erro da pois ele nao consegue converter o arquivo para um inteiro explicitamente desta forma.

Precisaria usar o Convert.Int16();

Mais se nao for nessa linha.,
mostra a linha certinha que esta ocorrento o erro.
pelo Debug da pra ter ideia.

att,
Chiodini
Responder

09/01/2014

Leandro Chiodini

O erro pode estar na linha onde ele monta a conexão
por isso esta impedindo a conexao com o banco.

att,
Chiodini
Responder

09/01/2014

Raniel Gomes

Vou verificar meu appConfig, mais está porque consigo fazer consultas no banco em meu formulário principal.
Responder

09/01/2014

Leandro Chiodini

Raniel,
Então seria interessante você destacar a linha que ocorre o erro na execução.
Coloca um Breakpoint no metodo e depura ele.

att,
Chiodini
Responder

09/01/2014

Leandro Chiodini

Raniel,
Então seria interessante você destacar a linha que ocorre o erro na execução.
Coloca um Breakpoint no metodo e depura ele.

att,
Chiodini
Responder

09/01/2014

Raniel Gomes

Consegui amigos LOL, olha só como fiz:

int i = Convert.ToInt16(cmd.ExecuteScalar());


Obrigado a todos, abraço.
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