2012-03-29 79 views
0
namespace Project 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     OleDbConnection MyCon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Project.accdb"); 

     public string user; 
     string password; 
     public MainWindow() 
     { 

      InitializeComponent(); 

     } 

     private void button2_Click(object sender, RoutedEventArgs e) 
     { 
      user = textBox1.Text; 
      char firstLetter = user[0]; 
      string password = textBox2.Text; 
      MyCon.Open(); 
      string command = "Select Name from Login where [email protected] AND password = @password"; 
      OleDbCommand cmd = new OleDbCommand(command, MyCon); 
      cmd.Parameters.AddWithValue(@user, textBox1.Text); 
      cmd.Parameters.AddWithValue(@password, textBox2.Text); 
      OleDbDataReader dr = cmd.ExecuteReader(); 
      int id = cmd.Parameters[0].Value; // This line genrating error 
      // MessageBox.Show(user); 
      if (firstLetter == 'E') 
      { 
       if (dr.Read() == true) 
       { 

        Window1 w1 = new Window1(); 
        w1.textBox3.Text = user; 
        w1.textBox4.Text = dr[0].ToString(); 
        w1.Show(); 
        this.Close(); 

        } 
        else 
        { 
         MessageBox.Show("NOt Login");  

        } 
       } 

如何检索id,然后将id和密码与用户登录进行匹配?我的代码有问题。如果我给错了密码,但密码正确,那么用户可以登录。如果ID和密码都是错误的,这不会发生;用户无法登录..使用数据库验证登录

回答

0
cmd.Parameters.AddWithValue(@user, textBox1.Text); 

这条线应该是

cmd.Parameters.AddWithValue(@userid, textBox1.Text); 
0

您必须检查侑SqlDataReader的有排?

if (dr.HasRow){ 
if (dr.Read())//Read Method Return a bool type 
{ 
    //Your Code 
} 
}