Comparer deux chaines en c#
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 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
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 :
Code:
1 2 3 4 5
|
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?? :roll:
merci
SQL Server 2000
visual c# expess 2008