使用Oledb Access登录系统

时间:2013-09-26 14:50:11

标签: c# wpf ms-access

我创建了一个登录页面,员工输入的是员工电子邮件地址,然后是他们的密码。我们的想法是让程序检查电子邮件和引脚形成Access数据库以成功登录。这是我使用的代码。

 private void Validate(object sender, RoutedEventArgs e)
    {
        OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:\\Users\\Baladi\\documents\\visual studio 2012\\Projects\\CalUnderFoot\\CalUnderFoot\\UserPerm.mdb");           
        OleDbCommand cmd = null;
        OleDbDataReader dr = null;

        string cmdStr = String.Format("select * from UserPermT where EmpEmail='{0}' and EmpPIN='{1}'", EmpEmailtxt.Text, EmpPINtxt.PasswordChar);

        con.Open();
        cmd = new OleDbCommand(cmdStr, con);
        dr = cmd.ExecuteReader();

        cmd.Dispose();

        if (dr.Read() == true)
        {
            MessageBox.Show("success");
        }

        else
        {
            MessageBox.Show("fail");
        }

        dr.Dispose();
    }

当我输入错误的电子邮件和密码时,我收到一条消息“失败”,这是它应该做的。但是,当我输入正确的电子邮件和pin时,我仍然收到“失败”消息。我错过了什么? 是的,我知道......我不应该在数据库中存储密码,我会在适当的时候加密它们。 提前谢谢

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

private void Validate(object sender, RoutedEventArgs e)
    {

    using (OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:\\Users\\Baladi\\documents\\visual studio 2012\\Projects\\CalUnderFoot\\CalUnderFoot\\UserPerm.mdb"))
    {
        OleDbCommand command = new OleDbCommand("select * from UserPermT where EmpEmail='"+EmpEmail.Text+"' and EmpPIN='"+EmpPIN.PasswordChar+"'", connection);
        connection.Open();
        OleDbDataReader dr= command.ExecuteReader();

        if (dr.Read())
        {
            MessageBox.Show("success");
        }

        else
        {
            MessageBox.Show("fail");
        }
        dr.Close();
    }
    }

(来自http://msdn.microsoft.com/en-us/library/979byfca.aspx