2012-03-29 10 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");  

        } 
       } 

Wie lade ich ID und dann ID und Passwort zur Benutzeranmeldung? Mein Code hat Probleme. Wenn ich falsche ID aber korrektes Passwort gebe, kann sich Benutzer anmelden. Dies passiert nicht, wenn ID und Passwort falsch sind. Benutzer kann nicht anmelden ..Anmeldung mit Datenbankauthentifizierung

Antwort

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

diese Linie

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

Sie müssen, dass yor SqlDataReader überprüfen hat Zeile enthalten sein sollte?

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