Erro de Login com MySQL
07/01/2014
0
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
Posts
07/01/2014
Raniel Gomes
08/01/2014
Leandro 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
08/01/2014
Leandro Chiodini
o seguinte
MySqlDataReader reader = cmd.ExecuteReader(); int res = reader.GetInt16(0);
Att
Chiodini
08/01/2014
Aluisio Cavalcante
09/01/2014
Leandro 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
09/01/2014
Leandro Chiodini
por isso esta impedindo a conexao com o banco.
att,
Chiodini
09/01/2014
Raniel Gomes
09/01/2014
Leandro 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
09/01/2014
Leandro 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
09/01/2014
Raniel Gomes
int i = Convert.ToInt16(cmd.ExecuteScalar());
Obrigado a todos, abraço.
Clique aqui para fazer login e interagir na Comunidade :)