Usuário com melhor resposta
Ajuda com a criação de login.

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á.
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
Todas as 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
-
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- Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 16 de dezembro de 2010 17:48
-
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.