none
Tela de Login

    Question

  • Pessoal, estou começando em C# e tenho uma duvida quando a melhor forma de se fazer uma tela de login.  TYenho uma WindowsApplication acessando Oracle 9i.  Defini na tela dois campos, cpf e senha, que serão validados com aquele cadastrado na base.  Contudo, da forma que fiz o código, ele sempre exibe a mensagem de usuário/senha invalido (sendo que esta ok).  Podem me ajudar? Segue o código:

    private void BtnOkLog_Click(object sender, EventArgs e){
    String cpflog = TxtCpfLog.Text;
    String passlog = TxtPassLog.Text;
    if (TxtCpfLog.Text == " ")
    {
    MessageBox.Show("Favor preencher o campo CPF");
    }
    else {
    try
    {
    Cursor.Current = Cursors.WaitCursor;
    //Definido os objetos de conexão com a base de dados
    String StrConnetion = "Provider=msdaora;Data Source=Data;User Id=User;password=Pass;";
    OleDbConnection cnn = new OleDbConnection();
    OleDbCommand command = new OleDbCommand(); // Comando
    OleDbDataAdapter adapter = new OleDbDataAdapter();
    cnn.ConnectionString = StrConnetion;
    cnn.Open();
    command.Connection = cnn;
     
    //Efetuando a consulta dos dados da pessoa para log no sistema
    command.CommandText = "SELECT CPF, SENHA FROM TABELA WHERE CPF = '"+TxtCpfLog.Text+"'";
     
    OleDbDataReader reader = command.ExecuteReader();
    // Boolean existe = false;
    while (reader.Read()) {
    if (cpflog == (string)reader["CPF"] && passlog == (string)reader["SENHA"]){
    MessageBox.Show("Bem vindo ao sistema tal!!!");
    }
    else {
    MessageBox.Show("Sem acesso!!!");
    return;
    }
    }
     
    // Encerrando conexões e destruindo os métodos de DataGrid e TextBox
    command.Dispose();
    cnn.Close();
    reader.Close();
     
    }
    catch (Exception ex)
    {
    MessageBox.Show("Erro. " + ex.Message, "William", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
    }
    System.Windows.Forms.Cursor.Current = Cursors.Default;
    }
    }

    Valeu galera!!!

    Friday, October 27, 2006 9:14 PM

Answers

  •  

    Você precisa depurar, ver o que está sendo retornado no datareader e comparar com as strings.

    Pode está havendo erro de conversão ou algo do tipo.

    if (cpflog == (string)reader["CPF"] && passlog == (string)reader["SENHA"]){

     

    Friday, November 03, 2006 5:03 PM