2013-07-26 86 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; 
     } 
相關問題