Salve.
Sto provando a fare un login tramite il database SQL-Server.
Devo leggere tutti i records con i campi di user, password e tipo di abilitazione.
Quindi se ho un abilitazione adi tipo "a" aprirà un form altrimenti se di tipo "b"un'altro.
Qua sotto ho creato un metodo però non funziona bene.
Se qualcuno volesse dare un'occhiata oppure se c'è qualcosa in internet per dare uno spunto.
Grazie.
codice:public void AccediDB() { string username; string password; string abilitazione; SqlCommand cmd = new SqlCommand("Select * From Tbl_Userid", Connetti.Conn); try { // La connessione era solo impostata, ora la si apre // Connect.conn.Open(); // Si utilizza il DataReader per leggera la tabella un record per volta SqlDataReader myReader = cmd.ExecuteReader(); //verifico l'esistenza di almeno un record nella tabella if (myReader.HasRows) { int n = 1; int a = 1; while (n < 2) { // leggo il contenuto dell'intero record in modo orrizzontale myReader.Read(); username = myReader.GetString(0).ToString(); password = myReader.GetString(2).ToString(); abilitazione = myReader.GetString(3).ToString(); // confronto che i dati del programma sono congrui a quelli // presente nel database if ((username == txtUsername.Text) && (password == txtPassword.Text)) { while (a < 2) { if (abilitazione == "a") { frmBiblioteca myNewForm1 = new frmBiblioteca(); myNewForm1.Show(); break; } if (abilitazione == "b") { frmLibri myNewForm = new frmLibri(); myNewForm.Show(); break; } a++; } } else { MessageBox.Show("Username o Password non validi.", "Errore di Login", MessageBoxButtons.OK, MessageBoxIcon.Error); } } n++; } // Chiude il DataReader myReader.Close(); } catch { //gestione dell'errore } }

Rispondi quotando

