Jump to content

Ajuda com sistema de login.


Recommended Posts

Posted

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.

uhDwkJ2.png

//linha 82 é a linha da int...

Posted

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"

Posted

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?

DxXQQTX.png

Posted

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"

  • 3 weeks later...
Posted

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.

Posted

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"

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.