Usuário com melhor resposta
Login

Pergunta
-
Caros colegas,
tenho esta a classe login:
namespace Apac_v_1 { public partial class FormLogin : Form { public static string Acesso; public bool logado = false; public FormLogin() { InitializeComponent(); } public void LogarR() { SqlConnection con = new SqlConnection(Properties.Settings.Default.Setting); SqlCommand cmd = new SqlCommand("SELECT * FROM tbl_Login WHERE usuario = @usuario AND senha = @senha AND nivelAcesso = @nivelAcesso", con); cmd.Parameters.Add("@usuario", SqlDbType.VarChar).Value = cbxUsuario.Text; cmd.Parameters.Add("@senha", SqlDbType.VarChar).Value = txtSenha.Text; cmd.Parameters.Add("@nivelAcesso", SqlDbType.VarChar).Value = cbxNivelAcesso.Text; con.Open(); SqlDataReader le = null; le = cmd.ExecuteReader(); if(le.Read()) { this.Hide(); Acesso = cbxNivelAcesso.Text; } else { MessageBox.Show("Sistema diz:" + "\n " + "Senha ou nível de acesso não confere!"); logado = false; } } private void btnLogar_Click(object sender, EventArgs e) { if(string.IsNullOrEmpty(txtSenha.Text)) { MessageBox.Show("Sistema diz: " + "" + "Favor informar sua senha!"); txtSenha.Focus(); return; } else { LogarR(); } } private void txtSenha_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Enter) { LogarR(); } } private void cbxNivelAcesso_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Enter) { LogarR(); } } private void cbxUsuario_Enter(object sender, EventArgs e) { Validar val = new Validar(); cbxUsuario.DataSource = val.listaUsuario(); cbxUsuario.DisplayMember = "usuario"; } private void cbxNivelAcesso_Enter(object sender, EventArgs e) { Validar val = new Validar(); cbxNivelAcesso.DataSource = val.listaNivel(); cbxNivelAcesso.DisplayMember = "nivelAcesso"; } } }
E esta classe validar:
namespace Apac_v_1 { public class Validar { public const string _strCon = @"Data Source=.\SQLEXPRESS;Initial Catalog=Apac_v_1; Integrated Security=True"; private string vsql = ""; SqlConnection objCon = null; private bool conectar() { objCon = new SqlConnection(_strCon); try { objCon.Open(); return true; } catch { return false; } } private bool desconectar() { if (objCon.State != ConnectionState.Closed) { objCon.Close(); objCon.Dispose(); return true; } else { objCon.Dispose(); return false; } } public List<string> listaNivel() { vsql = "SELECT nivelAcesso FROM tbl_nivel_Acesso"; SqlCommand objcmd = null; List<string> nivel_Acesso = new List<string>(); if (this.conectar()) { try { objcmd = new SqlCommand(vsql, objCon); SqlDataReader dr = objcmd.ExecuteReader(); while (dr.Read()) { nivel_Acesso.Add(dr["nivelAcesso"].ToString()); } return nivel_Acesso; } catch (SqlException erro) { throw erro; } finally { this.desconectar(); } } else { return null; } } public List<string> listaUsuario() { vsql = "SELECT usuario FROM tbl_Login"; SqlCommand objcmd = null; List<string> Usuario = new List<string>(); if(this.conectar()) { try { objcmd = new SqlCommand(vsql, objCon); SqlDataReader dr = objcmd.ExecuteReader(); while(dr.Read()) { Usuario.Add(dr["Usuario"].ToString()); } return Usuario; } catch(SqlException erro) { throw erro; } finally { this.desconectar(); } } else { return null; } } } }
E a classe Program, onde seria chamado a tela de login, e após a validação de usuário, senha e nivel de acesso, seria chamado a tela de menu, mas não acontece isso.
namespace Apac_v_1 { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new FormLogin()); FormLogin frmLogin = new FormLogin(); frmLogin.ShowDialog(); if(frmLogin.logado) { Application.Run(new FormMenu()); } } } }
Poderia me informar o que estou fazendo de errado? Agradeço.
kildare
Respostas
-
kjgomes ... a olho não parece nada errado. Quando você executa que erro da? Execute debugando e verifique onde (qual linha acontece o erro). Imagino que você pode ter erros para conectar (provavelmente a string de conexão pode estar errado) ou se vc tiver problema para logar, os campos usuário/senha podem não estar definidos corretamente ou o usuário não existe ... preciso saber onde está dando erro na sua execução para entender.
- Marcado como Resposta Thales F Quintas quinta-feira, 7 de julho de 2016 13:16
Todas as Respostas
-
kjgomes ... a olho não parece nada errado. Quando você executa que erro da? Execute debugando e verifique onde (qual linha acontece o erro). Imagino que você pode ter erros para conectar (provavelmente a string de conexão pode estar errado) ou se vc tiver problema para logar, os campos usuário/senha podem não estar definidos corretamente ou o usuário não existe ... preciso saber onde está dando erro na sua execução para entender.
- Marcado como Resposta Thales F Quintas quinta-feira, 7 de julho de 2016 13:16
-
Bom dia,
Por falta de retorno, esta thread será encerrada.
Caso seja necessário, por gentileza, abra uma nova thread.
Atenciosamente
Thales F Quintas
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
TechNet Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.