A.J Posted August 8, 2016 at 03:33 AM Report #598033 Posted August 8, 2016 at 03:33 AM Olá á todos, como ainda sou novato na area da programação me surgiu um erro e não sei como resolver.. tentei fazer um debug para ver se encontrava mas não consegui alguém poderia me ajudar? public void Login() { if(txbUser.Text == "") { MessageBox.Show("Por favor preencha o campo 'Usuario' para poder logar-se", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Warning); txbUser.Focus(); } else if (txbSenha.Text == "") { MessageBox.Show("Por favor preencha o campo 'Senha' para poder logar-se", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Warning); txbSenha.Focus(); } else { try { string usuario, senha; MysqlConn = new MySqlConnection(strConn); usuario = txbUser.Text; senha = txbSenha.Text; strMysql = "SELECT COUNT(ID) FROM tbl_market WHERE Usuario=@Usuario AND Senha=@Senha"; MySqlCommand cmd = new MySqlCommand(strMysql, MysqlConn); cmd.Parameters.Add("@Usuario", MySqlDbType.VarChar).Value = usuario; cmd.Parameters.Add("@Senha", MySqlDbType.VarChar).Value = senha; MysqlConn.Open(); int Teste = (int)cmd.ExecuteScalar(); if (Teste > 0) { MessageBox.Show("Acesso liberado, Seja bem vindo:" + txbUser.Text); } else { MessageBox.Show("Usuario ou Senha são invalidos", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } catch (Exception Error) { MessageBox.Show("Ocorreu o seguinte erro: " + Error, "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } meu erro se encontra na parte int Teste = (int)cmd.ExecuteScalar(); if (Teste > 0) eu não sei como proceder... segue abaixo o erro. //linha 82 é a linha da int...
ribeiro55 Posted August 8, 2016 at 09:04 AM Report #598035 Posted August 8, 2016 at 09:04 AM Verifica, em debug, qual o valor que o ExecuteScalar está a trazer. Desconfio que está a sair em erro porque não estás a adicionar os parâmetros corretamente. Experimenta trocar os cmd.Parameters.Add por o AddWithValue e verifica o que entra e o que sai em step-debug. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips"
A.J Posted August 8, 2016 at 07:15 PM Author Report #598047 Posted August 8, 2016 at 07:15 PM Olá Riberio55, então tentei de várias formas afim de solucionar o problema, porém não objetive sucesso... abaixo as formas na parte do parametro cmd.Parameters.Add(new MySqlParameter("@Usuario", MySqlDbType.VarChar)).Value = txbUser.Text; cmd.Parameters.Add(new MySqlParameter("@Senha", MySqlDbType.VarChar)).Value = txbSenha.Text; cmd.Parameters.AddWithValue("@Usuario", MySqlDbType.VarChar).Value = txbUser.Text; cmd.Parameters.AddWithValue("@Senha", MySqlDbType.VarChar).Value = txbSenha.Text; fiz o debug que você me recomendou porém não consegui identificar nada, a variavel me retorna 0 e segue para o cath minhas variaveis veja se está correta MySqlConnection MysqlConn = null; private string strConn = "Server=localhost; Userid=root; Database=db_market; "; private string strMysql = string.Empty; de uma olhada nessa parte parece que o valor que coloquei na textbox me retornou null; será isso o problema?
ribeiro55 Posted August 9, 2016 at 09:22 AM Report #598053 Posted August 9, 2016 at 09:22 AM Se segue para o catch, verifica a Message da Exception. Está lá a razão do insucesso. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips"
N3lson Posted August 29, 2016 at 08:13 PM Report #598466 Posted August 29, 2016 at 08:13 PM coloca o mysql.Open(); antes do cmd.Parameters.AddWithValue("@Usuario", txbUser.Text); cmd.Parameters.AddWithValue("@Senha",txbSenha.Text); e coloca o addWithValue como está acima You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.
apocsantos Posted August 30, 2016 at 12:09 AM Report #598477 Posted August 30, 2016 at 12:09 AM Boa noite, Se a memória não me está a falhar o executescalar, retorna um valor do tipo System.Object. Por isso o erro de cast, para int. public void Login() { if(txbUser.Text == "") { MessageBox.Show("Por favor preencha o campo 'Usuario' para poder logar-se", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Warning); txbUser.Focus(); } else if (txbSenha.Text == "") { MessageBox.Show("Por favor preencha o campo 'Senha' para poder logar-se", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Warning); txbSenha.Focus(); } else { try { string usuario, senha; MysqlConn = new MySqlConnection(strConn); usuario = txbUser.Text; senha = txbSenha.Text; strMysql = "SELECT COUNT(ID) FROM tbl_market WHERE Usuario=@Usuario AND Senha=@Senha"; MySqlCommand cmd = new MySqlCommand(strMysql, MysqlConn); cmd.Parameters.Add("@Usuario", MySqlDbType.VarChar).Value = usuario; cmd.Parameters.Add("@Senha", MySqlDbType.VarChar).Value = senha; MysqlConn.Open(); int? Teste = (int?)cmd.ExecuteScalar(); if (Test.HasValue) { if (Teste > 0) { MessageBox.Show("Acesso liberado, Seja bem vindo:" + txbUser.Text); } else { MessageBox.Show("Usuario ou Senha são invalidos", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { MessageBox.Show("Ocorreu um erro", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Warning);} } catch (Exception Error) { MessageBox.Show("Ocorreu o seguinte erro: " + Error, "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now