2013-07-26 51 views
1

我想检查一个数据库,我已经连接到我的程序的用户名和密码我有我的查询,但我怎么去检查它对表。检查数据库的用户名或密码OledDb连接

private void button1_Click(object sender, EventArgs e) 
    { 
     Menu m1 = new Menu(); 
     string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=UserAccounts.accdb; Persist Security Info=False;"; 
     OleDbCommand cmd = new OleDbCommand("Select * from UserAccounts where Username = " +userBox.Text + " and Password] = " + Password.Text + ""); 
     using (OleDbConnection conn = new OleDbConnection(connectionString)) 
     { 
      try 
      { 
       conn.Open(); 
       this.Hide(); 
       m1.Show(); 
      } 
      catch (Exception exc) 
      { 
       MessageBox.Show(exc.Message); 
      } 
     } 
    } 
+0

你能用英文更好地解释你正在尝试做什么? – Avitus

+0

我有具有用户名和密码的Microsoft Access文件。我试图检查用户在用户名和密码字段中输入的内容,看他们是否在数据库中,并允许他们访问,如果他们有正确的用户名和密码@Avitus – user2552211

+0

哦,天啊。另一个超级不安全和密码泄漏的home-rolled系统: - /无论如何,'Password]'是无效的SQL语法。尝试使用'['也是。然后查找“准备好的语句”..然后你实际上想要查询数据库(运行命令)并对结果做一些事情。 – user2246674

回答

3

你很已近,我们只需修改一点点:

private void button1_Click(object sender, EventArgs e) 
{ 
    Menu m1 = new Menu(); 
    string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=UserAccounts.accdb; Persist Security Info=False;"; 
    using (OleDbConnection conn = new OleDbConnection(connectionString)) 
    { 
     try 
     { 
      conn.Open(); 
      using (OleDbCommand cmd = new OleDbCommand("Select * from UserAccounts where Username = @Username and Password = @Password")) 
      { 
       cmd.Parameters.AddWithValue("@Username", userBox.Text); 
       cmd.Parameters.AddWithValue("@Password", Password.Text); 

       using (OleDbDataReader r = cmd.ExecuteReader()) 
       { 
        if (r.HasRows) 
        { 
         // do something here 
        } 
       } 
      } 
      this.Hide(); 
      m1.Show(); 
     } 
     catch (Exception exc) 
     { 
      MessageBox.Show(exc.Message); 
     } 
    } 
} 
+1

完美我是如此接近谢谢你的帮助! – user2552211

0

如果你只是想检查用户名和密码存在,你可以做这样的

public bool IsValid(string username, string password) 
     { 
      string connectionString = @"...connectionstring"; 


      string SQL = "SELECT * FROM UserAccounts where [Username]='" + username + "' and [Password]='" + password + "'"; 

      OdbcConnection conn = new OdbcConnection(connectionString); 

      OdbcCommand cmd = new OdbcCommand(SQL); 
      cmd.Connection = conn; 

      conn.Open(); 

      OdbcDataReader reader = cmd.ExecuteReader(); 

      if (reader.HasRows) 
      { 
       return true; 
      } 

      return false; 
     } 
相关问题