Erro de Login com MySQL
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:
Agora a ação de Clique do meu botão entrar:
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
Curtidas 0
Respostas
Raniel Gomes
07/01/2014
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]
GOSTEI 0
Raniel Gomes
07/01/2014
Alguém tem alguma solução?
GOSTEI 0
Leandro Chiodini
07/01/2014
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
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
GOSTEI 0
Leandro Chiodini
07/01/2014
Tenta fazer ali no reader
o seguinte
Att
Chiodini
o seguinte
MySqlDataReader reader = cmd.ExecuteReader(); int res = reader.GetInt16(0);
Att
Chiodini
GOSTEI 0
Aluisio Cavalcante
07/01/2014
mas pq da esse erro? pensei que tivesse certo o codigo.
GOSTEI 0
Leandro Chiodini
07/01/2014
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
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
GOSTEI 0
Leandro Chiodini
07/01/2014
O erro pode estar na linha onde ele monta a conexão
por isso esta impedindo a conexao com o banco.
att,
Chiodini
por isso esta impedindo a conexao com o banco.
att,
Chiodini
GOSTEI 0
Raniel Gomes
07/01/2014
Vou verificar meu appConfig, mais está porque consigo fazer consultas no banco em meu formulário principal.
GOSTEI 0
Leandro Chiodini
07/01/2014
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
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
GOSTEI 0
Leandro Chiodini
07/01/2014
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
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
GOSTEI 0
Raniel Gomes
07/01/2014
Consegui amigos LOL, olha só como fiz:
Obrigado a todos, abraço.
int i = Convert.ToInt16(cmd.ExecuteScalar());
Obrigado a todos, abraço.
GOSTEI 0