Visual Studio 2013中使用Access数据库登录表单

时间:2015-04-22 12:21:49

标签: c# asp.net visual-studio ms-access visual-studio-2013

我正在尝试在使用MS Access DB的C#Visual Studio 2013中创建登录表单。当我点击登录按钮时,无论我在密码部分输入什么,都会显示“密码正确,登录成功”。

以下是代码:

    private void signin_Click(object sender, EventArgs e)
    {
        String username = user.Text;
        String password = user.Text;
        String temp = null;
        Int32 res = 0;
        OleDbConnection conn = new OleDbConnection();
        conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\AADHARSH\DS\ASP.NET\logindb.mdb;Persist Security Info=False;";
        conn.Open();
        OleDbCommand cmd = new OleDbCommand();
        cmd.Connection=conn;
        cmd.CommandText="SELECT Password FROM UserTable WHERE Username='"+username+"'";
        OleDbDataReader reader = cmd.ExecuteReader();


        if(reader.Read())
        {
                result.Text = "Password Correct. Login Succesful";

        }
        else 
        {
            result.Text="Password field cannot be blank";
        }
        conn.Close();
    }

1 个答案:

答案 0 :(得分:1)

您没有检查数据库的密码。更改您的查询,以便它使用"SELECT * FROM UserTable WHERE Username=? AND Password=?";,假设您将使用OleDb parameters而不是TextBoxes的内容,这将打开您的代码进行SQL注入。

另外,请在以下行检查您的代码:

 String username = user.Text;
 String password = user.Text;

您对用户名和密码使用相同的文本框值,您可能应该pass.Text