C# et Mysql

Résolu
merybaha Messages postés 13 Date d'inscription vendredi 20 avril 2012 Statut Membre Dernière intervention 5 juin 2012 - 20 avril 2012 à 21:01
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 21 avril 2012 à 20:52
bonjour tout le monde ;
je suis en train de réaliser une application en c#,la base de données Mysql,le problème est que j'arrive pas à vérifier si le login et mot de passe entrés par l'utilisateur se trouvent dans ma bas de donnée.veuillez m'aider s'il vous plait? c urgent.

12 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 avril 2012 à 19:46
Bonjour,

"je ne sais pas comment le faire"
Il y a pas mal de code sur Internet à ce sujet.

"SELECT * FROM comptes WHERE Login='"+login.Text+"' AND Password='"+password.Text+"'";

Pour une première étape, ensuite fais attention aux injections SQL.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
20 avril 2012 à 22:38
Bonjour,

Comment fais-tu actuellement ?
Voir le point 2 de ma signature.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
merybaha Messages postés 13 Date d'inscription vendredi 20 avril 2012 Statut Membre Dernière intervention 5 juin 2012
21 avril 2012 à 01:20
merci pour votre signature
0
merybaha Messages postés 13 Date d'inscription vendredi 20 avril 2012 Statut Membre Dernière intervention 5 juin 2012
21 avril 2012 à 02:27
j'ai essayé avec ce code mais ça ne marche pas ,je ne sais pas où est le problème


String url = "SERVER=localhost;DATABASE=stage;UID=root;PASSWORD= ";
string cmd = "SELECT Password FROM comptes";
MySqlConnection con = new MySqlConnection(url);
MySqlCommand cmde = new MySqlCommand(cmd,con);
MySqlDataReader rd;

try
{
con.Open();
rd = cmde.ExecuteReader();
int count=0;
while(rd.Read())
{
count++;
}


if (count!=0)
{
Gestion f = new Gestion();
f.Show();

}
else
{
login.Text = "";
password.Text = "";
MessageBox.Show("Veuillez entrer un login et un mot de passe correct", "Vérification de la saisie",
MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}
catch (MySqlException )
{
Console.WriteLine("erreur");
}
con.Close();
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 avril 2012 à 15:04
Bonjour,

Quand vous postez un code, lisez le point 2 de ma signature.
"mais ça ne marche pas", en plus détaillé ?
Message d'erreur, actions, ...

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
merybaha Messages postés 13 Date d'inscription vendredi 20 avril 2012 Statut Membre Dernière intervention 5 juin 2012
21 avril 2012 à 16:42
quand j'entre le login et le mot de passe d'aprés le formulaire d'authentification et j'appuie sur le button "entrer",la fenetre principale ne s'affiche pas et ça malgré que le login et le mot de passe sont correctes
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 avril 2012 à 16:54
Bonjour,

As-tu vérifier en pas à pas comment ça se passait, pourquoi ça ne fonctionne pas comme prévu ?

Tu fais comme requête :
"SELECT Password FROM comptes"
Donc tu récupères toutes les lignes de la table, ensuite, tu fais :
while(rd.Read())
{
count++;
}

if (count!=0)

Quelque soir le login/mdp entré, le résultat reste le même.
Si tu veux compter le nombre de ligne, regardes la clause SQL COUNT.
Pour le filtrage, regardes la clause SQL WHERE.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
merybaha Messages postés 13 Date d'inscription vendredi 20 avril 2012 Statut Membre Dernière intervention 5 juin 2012
21 avril 2012 à 17:24
j'ai changé la requete par:
"SELECT * FROM comptes WHERE Login="+login.Text+"AND Password="+password.Text;
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 avril 2012 à 17:33
Bonjour,

As-tu regardé le format pour les chaines de caractères sur les requêtes SQL ?
Car tel quel, ta requête est incorrecte.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
merybaha Messages postés 13 Date d'inscription vendredi 20 avril 2012 Statut Membre Dernière intervention 5 juin 2012
21 avril 2012 à 18:26
je ne sais pas comment le faire
0
merybaha Messages postés 13 Date d'inscription vendredi 20 avril 2012 Statut Membre Dernière intervention 5 juin 2012
21 avril 2012 à 20:26
Croyez moi que ça fait plus qu'un mois que je cherche sur internet , j'ai trouvé pas mal de codes mais aucune corresponds à mon problème .grace à votre aide j'ai réussi donc thank you very very much
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 avril 2012 à 20:52
Bonjour,

De rien.
Tiens comme essai, essayes comme Login et pseudo (respectivement) :
Pseudo' OR ('a'='a
') Or 'a'='b

Remplace Pseudo par le login désiré.
Pour faire une petite injection SQL :)

Sinon, penses aussi à crypter ou hasher les mdp (regardes du coté du MD5).

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Rejoignez-nous