Das Formular wird in Windows Forms erstellt und sieht ungefähr so aus:
In mySQL erstellen wir eine Tabelle 'edata' mit den folgenden Feldern:
Mit dem folgenden Code greifen wir nun auf die Daten zu:
using System; using System.Data; using System.Windows.Forms; using MySql.Data.MySqlClient; namespace First_C_Sharp_App { public partial class Login : Form { public Login() { InitializeComponent(); } private void btnLogin_Click(object sender, EventArgs e) { try { string myConnection = "datasource=localhost;port=3306; " + "username=root;password=xyz"; MySqlConnection myConn = new MySqlConnection(myConnection); MySqlCommand SelectCommand = new MySqlCommand ("select * from database.edata where user_name='" + username_txt.Text + "' and password='" + password_txt.Text + "' ;", myConn); MySqlDataReader myReader; myConn.Open(); myReader = SelectCommand.ExecuteReader(); int count = 0; while (myReader.Read()) { count++; } if (count==1) { MessageBox.Show("Username und Password ist correct"); } else if (count>1) { MessageBox.Show ("Duplicate Username and password ... Access denied"); } else { MessageBox.Sho ("Username or password not correct ... Please try again"); } myConn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }'user_name' und 'password' sind bewusst einfach gehalten, damit man einfach herumspielen kann.
Passwort korrekt, doppelt, falsch ....
Ansonsten müsste die Routine selbst erklärend sein.
Zum Schluss noch ein Tipp: Gibt man im Textfeld 'Password' unter 'Eigenschaften' als 'PasswordChar' z.B. '#' ein, so wird die Eingabe mit diesem Zeichen maskiert, wie es sich für die Eingabe von Passwörtern gehört. Selbstverständlich kann das auch per Coder erledigt werden:
password_txt.PasswordChar = '#';
Der Code muss aber wo erfolgen? Natürlich nachInitializeComponent();
Andernfalls ist das Fenster bereits geöffnet und die Eingabe erscheint im Klartext.
Keine Kommentare:
Kommentar veröffentlichen