Comparer deux chaines en c#
mimi
-
Nico# Messages postés 328 Date d'inscription Statut Membre Dernière intervention -
Nico# Messages postés 328 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai réalisé un code d'authentification permettant à un utilisateur de se connecter à l'application .
pour cela j'accède à la base de données et je vérifie si les informations saisies par l'utilisateur existent dans la base de données ou non.
voici le code que j'ai développer :
J'ai controlé la valeur du trouve dans le traitement suivant :
Mais dans l'exécution , toujours le message " nom....invalide" est affiché.
quand j'ai fait quelques vérifications j'ai trouvé que le l et le p contiennent toujours des données et que le programme n'entre pas à l'intruction if même si la condition est réalisée .
quelqu'un peut m'aider à résoudre ce problème??
merci
SQL Server 2000
visual c# expess 2008
j'ai réalisé un code d'authentification permettant à un utilisateur de se connecter à l'application .
pour cela j'accède à la base de données et je vérifie si les informations saisies par l'utilisateur existent dans la base de données ou non.
voici le code que j'ai développer :
public bool authentifier(string log, string pass)
{
string l="", p="";
bool trouve=false;
int n=0;
foreach (DataRow row in datast.Tables["utilisateur"].Rows)
{
l = (string) datast.Tables["utilisateur"].Rows[n].ItemArray[0];
p = (string) datast.Tables["utilisateur"].Rows[n].ItemArray[1];
if (l.Equals(log) == true)
{
if (p.Equals(pass) ==true)
{
trouve = true; ;
}
}
n++;
}
return trouve;
}
J'ai controlé la valeur du trouve dans le traitement suivant :
bool valid;
valid = user.authentifier(this.textBox_login.Text, this.textBox_pass.Text);
if (valid == true) { this.Close(); }
else MessageBox.Show("Le nom d'utilisateur ou le mot de passe est invalide !");
Mais dans l'exécution , toujours le message " nom....invalide" est affiché.
quand j'ai fait quelques vérifications j'ai trouvé que le l et le p contiennent toujours des données et que le programme n'entre pas à l'intruction if même si la condition est réalisée .
quelqu'un peut m'aider à résoudre ce problème??
merci
SQL Server 2000
visual c# expess 2008
2 réponses
-
slt dans ta conditions une fois trouve la concordances tudois quitter ton test
public bool authentifier(string log, string pass) { string l=null, p=null; // prefere des null ou des empty au lieu des "" bool trouve=false; int n=0; foreach (DataRow row in datast.Tables["utilisateur"].Rows) { l = (string) datast.Tables["utilisateur"].Rows[n].ItemArray[0]; p = (string) datast.Tables["utilisateur"].Rows[n].ItemArray[1]; if (l.Equals(log) == true) { if (p.Equals(pass) ==true) { trouve = true; return trouve ; } } n++; } return trouve; }
de plus tu peut combine des deux if avec la condition et se qui evite un second if -