Comparer deux chaines en c#
mimi
-
Nico# Messages postés 338 Statut Membre -
Nico# Messages postés 338 Statut Membre -
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
A voir également:
- Comparer deux chaines en c#
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Comment faire deux colonnes sur word - Guide
- Deux ecran pc - Guide
- Nombre de jours entre deux dates excel - Guide
- Fusionner deux cellules excel en gardant le contenu - Guide
2 réponses
slt dans ta conditions une fois trouve la concordances tudois quitter ton test
de plus tu peut combine des deux if avec la condition et se qui evite un second if
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