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