Google
 
Diesen Blog abonnieren

Beliebte Posts

Montag, 30. November 2015

C# und mySQL - Login Formular

Nachdem die Anbindung an die SQL Datenbank geglückt ist, erstellen wir doch ein Login Formular. Schliesslich wollen wir die Datenbank nutzen.

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 nach
 InitializeComponent();
Andernfalls ist das Fenster bereits geöffnet und die Eingabe erscheint im Klartext.

Keine Kommentare: