none
Ajuda com a criação de login. RRS feed

  • Pergunta

  • Bom dia galera. Estou desenvolvendo uma aplicação e nela preciso ter um login, acontece que sou novo em desenvolvimento e não sei como farei para criar esse login.

    A situação é a seguinte:

    - Tenho duas textbox, uma para usuário e outra para senha.

    -Tenho dois button  um para login o outro para cancelar(esse só fecha o form).

    - Uma label error invisível.

    - Tenho uma tabela usuário no banco que terá os usuários e as senhas.

    O que eu quero que aconteça, no evento click do button login eu quero que ele cheque se o usuário e a senha são compativeis com os valores de usuário e senha que tem no banco. Se sim usuário e senha compatível ele realiza o login. Se não ele torna a error label visível.

     

    Qualquer ajuda relacionada ao meu problema é bem vinda, agradeço de já.

    segunda-feira, 13 de dezembro de 2010 11:48

Respostas

  • vamos lá então

     

    primeiro adicione

    nas using

    using System.Data;
    using System.Data.SqlClient;

    depois vc vai criar sua conexão com o banco

    string conexao = "Data Source=(local);Initial Catalog=baseDados;Integrated Security=True"; //essa vai ser sua string de conexão e irá conectar com o usuario e senha do windows

    onde está escrito baseDados vc irá colocar o nome da sua Base de Dados

    agora vms criar o metodo para abrir a conexão com o banco de dados

     SqlConnection cn = new SqlConnection(conexao);
     cn.Open();
     return cn;

    agora vou colocar o metodo com a parte já do login

    private void btnLogin_Click(object sender, EventArgs e)
    {   
       DataSet ds = new DataSet();
       if((txtUsuario.Text == "") && (txtSenha.Text == ""))
       {
        MessageBox.Show("Digite usuário e senha !!!");
       }
       else
       {
        string query = "select * from tblusuario where login = '" + txtUsuario.Text + "' and senha = '" + txtSenha.Text + "'";
        try
          {
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = query.ToString();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = cn;
            cmd.ExecuteNonQuery();
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            da.Fill(ds);
          }
          catch(Exception ex)
          {
            throw ex;
          }
          finally
          {
            if (cn.State == ConnectionState.Open)
            cn.Close();
          }
        if(ds.Tables[0].Rows.Count >0)
        {
         formPrincipal form = new frmPrincipal();
         form.Tag = "new";
         form.Show();
        }
        else
        {
         MessageBox.Show("Usuário e senha incorreto !!!");
        }
       }
    }

    Teste para ver se vai dar certo

    se der marque como respondido


    Bruno Garcia Analista Sistemas Junior
    • Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 16 de dezembro de 2010 17:47
    • Marcado como Resposta Lubean quinta-feira, 16 de dezembro de 2010 18:45
    segunda-feira, 13 de dezembro de 2010 14:08

Todas as Respostas

  • Qual o banco de dados que vc está usando?
    Bruno Garcia Analista Sistemas Junior
    segunda-feira, 13 de dezembro de 2010 13:18
  • segunda-feira, 13 de dezembro de 2010 13:40
  • O banco de dados que eu estou usando é o SQL.
    segunda-feira, 13 de dezembro de 2010 13:48
  • vamos lá então

     

    primeiro adicione

    nas using

    using System.Data;
    using System.Data.SqlClient;

    depois vc vai criar sua conexão com o banco

    string conexao = "Data Source=(local);Initial Catalog=baseDados;Integrated Security=True"; //essa vai ser sua string de conexão e irá conectar com o usuario e senha do windows

    onde está escrito baseDados vc irá colocar o nome da sua Base de Dados

    agora vms criar o metodo para abrir a conexão com o banco de dados

     SqlConnection cn = new SqlConnection(conexao);
     cn.Open();
     return cn;

    agora vou colocar o metodo com a parte já do login

    private void btnLogin_Click(object sender, EventArgs e)
    {   
       DataSet ds = new DataSet();
       if((txtUsuario.Text == "") && (txtSenha.Text == ""))
       {
        MessageBox.Show("Digite usuário e senha !!!");
       }
       else
       {
        string query = "select * from tblusuario where login = '" + txtUsuario.Text + "' and senha = '" + txtSenha.Text + "'";
        try
          {
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = query.ToString();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = cn;
            cmd.ExecuteNonQuery();
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            da.Fill(ds);
          }
          catch(Exception ex)
          {
            throw ex;
          }
          finally
          {
            if (cn.State == ConnectionState.Open)
            cn.Close();
          }
        if(ds.Tables[0].Rows.Count >0)
        {
         formPrincipal form = new frmPrincipal();
         form.Tag = "new";
         form.Show();
        }
        else
        {
         MessageBox.Show("Usuário e senha incorreto !!!");
        }
       }
    }

    Teste para ver se vai dar certo

    se der marque como respondido


    Bruno Garcia Analista Sistemas Junior
    • Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 16 de dezembro de 2010 17:47
    • Marcado como Resposta Lubean quinta-feira, 16 de dezembro de 2010 18:45
    segunda-feira, 13 de dezembro de 2010 14:08
  • Olá,

    Acredito que a solução do Bruno resolverá o seu problema...

    Só tenho um comentário: ao invés de concatenar os valores dos textboxes na consulta, utilize a funcionalidade de parâmetros do ADO.NET... Isso vai evitar problemas do tipo o usuário digitar ' (aspas simples) no textbox e você receber uma exception, problemas de SQL Injection e por aí vai... Para maiores detalhes, veja:

    http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson06.aspx


    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 14 de dezembro de 2010 12:46
    Moderador
  • Seu código me ajudou bastante, mas na verdade desenvolvi meu próprio código baseado no seu. Para alguem que estaja na mesma situação que eu aqui está o código que eu estou usando

     

            private void but_login_Click(object sender, EventArgs e)
            {
                tb_tabela = new DataTable();

                if (txt_usuario.Text == "" && txt_senha.Text == "")
                {
                    label_error.Text = "Por favor preencha os espaço de usuário e senha!";
                    label_error.Visible = true;
                }
                else
                {

                    try
                    {
                        SqlCommand command = CreateCommand("SELECT * FROM Tabela_Usuario WHERE Usuario ='" + txt_usuario.Text + "' AND Senha = '" + txt_senha.Text+"'");
                        SqlDataAdapter adapter = new SqlDataAdapter(command);
                        adapter.Fill(tb_usuario);

                        LoginIsValid = true;   <<<<<<<<<<<<   uma bool cirada para ajudar com a validação do login.
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                        LoginIsValid = false;
                    }

                    if (tb_tabela.Rows.Count > 0)
                    {
                        this.Close();
                    }
                    else
                    {
                        lab_error.Text = "Usuário e/ou senha errados!";
                        lab_error.Visible = true;
                    }
                }

            }

     

     

    Qualquer dúvida, é só perguntar.

    quinta-feira, 16 de dezembro de 2010 19:01