none
Problema ao Criar Permissões de Usuário em Menus com o C# RRS feed

  • Pergunta

  • Boa tarde,

    Estou  criando o login de usuário com nível de permissão só que ele não está funcionando, detalhe, ele não está dando erro no código, simplesmente não chama a tela inicial, Alguém pode me ajudar, não consigo achar o erro!

    Meu código está assim: 

     private void entrar_login_Click(object sender, EventArgs e)
            {
                MySqlConnection conn = new MySqlConnection("SERVER=localhost;DATABASE=teste;UID=root;PASSWORD=;");
    
                
    
    
                if ((nome_usuario.Text == "" || senha_usuario.Text == ""))
                {
                    MessageBox.Show("Insira o login e a senha para acessar", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    
    
                }
    
                else
                {
                    try
                    {
                        MySqlCommand cmd = new MySqlCommand("SELECT Usuario,Senha,cd_perfil FROM usuarios WHERE Usuario=@usuario and Senha=@senha", conn);
                        cmd.Parameters.Add("@usuario", MySqlDbType.VarChar).Value = nome_usuario.Text;
                        cmd.Parameters.Add("@senha", MySqlDbType.VarChar).Value = senha_usuario.Text;
                        conn.Open();
                        MySqlDataReader reader = cmd.ExecuteReader();
    
                        if (reader.Read())
                        {
    
                            //recebe dados do cargo usuario
                            string cargo = reader.GetString("cd_perfil");
                           
    
                            MessageBox.Show("Bem vindo ao sistema");
    
                            //Define as permissoes
    //Se o cargo for igual a 1
                            if(cargo.Equals(1))
                            {
                                
    
                                Inicio frmp = new Inicio();
                                frmp.Show();
                                this.Visible = false;
                            
                            }
    //Se o cargo for igual a 2
                            else if(cargo.Equals(2))
                            {
                               
    
                                Inicio frmp = new Inicio();
                                frmp.relatório.Enabled = false;
                                frmp.Rela.Enabled = false;
                                frmp.Show();
                                this.Visible = false;
                            }
                            
                        }
                        else
                        {
                            MessageBox.Show("Usuário e/ou Senha invalidos", "Aviso", MessageBoxButtons.RetryCancel, MessageBoxIcon.Exclamation);
                            nome_usuario.Text = "";
                            senha_usuario.Text = "";
                        }
                    }
                    catch (MySqlException ex)
                    {
                        MessageBox.Show("Erro de conexão" + Convert.ToString(ex), "Mensagem");
                        conn.Close();
                    }
                }
    

    sexta-feira, 25 de novembro de 2016 16:51

Respostas

  • Olá,

    Andressa, se sua variável cargo é uma string você não pode fazer a verificação dessa forma, olha como deve ser a comparação de strings:

    //ERRADO
    if(cargo.Equals(1))
    
    //CERTO
    if (cargo.Equals("1"))

    Tenta corrigir isso em todos e ver se funciona.

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco


    • Editado André SeccoMVP sexta-feira, 25 de novembro de 2016 16:59
    • Marcado como Resposta Andressa.s sexta-feira, 25 de novembro de 2016 17:11
    sexta-feira, 25 de novembro de 2016 16:58

Todas as Respostas

  • Olá,

    Andressa, se sua variável cargo é uma string você não pode fazer a verificação dessa forma, olha como deve ser a comparação de strings:

    //ERRADO
    if(cargo.Equals(1))
    
    //CERTO
    if (cargo.Equals("1"))

    Tenta corrigir isso em todos e ver se funciona.

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco


    • Editado André SeccoMVP sexta-feira, 25 de novembro de 2016 16:59
    • Marcado como Resposta Andressa.s sexta-feira, 25 de novembro de 2016 17:11
    sexta-feira, 25 de novembro de 2016 16:58
  • Problema de tipo. Sua variavel cargo é do tipo string e sua verificacao usa equals.

    O equals leva em conta o tipo.. se voce quiser que funcione faça:

      if(cargo.Equals("1"))

    ou

      if(cargo=="1")

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    sexta-feira, 25 de novembro de 2016 16:59
    Moderador
  • Heyy

    Funcionou jovem, que falta de atenção a minha.

    Esses fóruns do msdn ta me deixando preguiçosa kkkk

    Muito Obrigada!!


    • Editado Andressa.s sexta-feira, 25 de novembro de 2016 17:14
    sexta-feira, 25 de novembro de 2016 17:13
  • Hey

    funciona também dessa maneira.

    Thanks jovem!

    sexta-feira, 25 de novembro de 2016 17:15
  • Agredeço o "Jovem" :)

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    sexta-feira, 25 de novembro de 2016 18:00
    Moderador