Probleme dans code

Signaler
Messages postés
86
Date d'inscription
mardi 12 février 2002
Statut
Membre
Dernière intervention
8 novembre 2009
-
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
-
Aidez moi je suis en train de faire une page d'administration et apparemment j'ai des probleme dans mon code.

   /*//declaration de variables
            int martial;
            //declaration de la connexion
            OracleConnection connexion = new OracleConnection();
             
            connexion.ConnectionString = "User Id=SYSTEM;Password=koyeli;Data Source=localhost;";
            //ouverture de la connexion
            

            if (txtlogin.Text != "")
            {
                 martial=1;
            }
            else
            {
                 martial=0;
            }
            switch(martial)
                    {
                case 1:
                string cmdlogin = "SELECT login_utilisateur FROM utilisateur WHERE login_utilisateur=" + txtlogin.Text;
                connexion.Open();
                OracleCommand cmdconnexion = new OracleCommand(cmdlogin,connexion);
                OracleDataReader reader = cmdconnexion.ExecuteReader();
                    while( reader.Read() )
                    {
                        MessageBox.Show("Numéro: " + reader.GetString(6));
                    }

                    
                try
                {
                    
                   
                       
                  
                    if (txtpassword.Text == "martial")
                    {
                        indentification.ActiveForm.Hide();
                        Form Form1 = new Form1();
                        Form1.Show();
                    }
                    else
                    {
                        MessageBox.Show("Veuillez vérifier votre mot de passe", "Erreur de connexion",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        txtpassword.Text = "";
                    }
                }
                catch
                {
                    MessageBox.Show("Veuillez vérifier votre nom d'utilisateur", "Erreur de connexion",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    txtlogin.Text = "";
                }
            
            break;
            case 0:
            
                MessageBox.Show("Le champ de texte login est sûrement vide; veuillez le remplir", "Erreur de connexion",
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                
            break;
            default:
            break;
        }
            connexion.Close();
    }

    }
    }

Il met comme erreur: ORA-00904: "YELIMA" : identificateur non valide
à ce niveau lorsque j'entre comme login yelima:
OracleDataReader reader = cmdconnexion.ExecuteReader();
Mais si je n'entre rien dans les champs, il me demande comme prevu de verifier le login

3 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
87
Salut,

Il suffit de réfléchir à ce que donne cette ligne à l'execution :
string cmdlogin = "SELECT login_utilisateur FROM utilisateur WHERE login_utilisateur=" + txtlogin.Text;

Pour une valeur "yelima" dans txtlogin.Text ça donne
"SELECT login_utilisateur FROM utilisateur WHERE login_utilisateur=yelima"
Je doute que la table "utilisateur" comporte une colonne par utilisateur...

Tu devrais te renseigner sur le concept de requête paramétrée, et sur le problème d'injection SQL en cas de défaut de motivation pour effectuer le "travail supplémentaire".

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Serait également une bonne idée de ne pas mettre le mot de passe en clair dans les messages sur le forum....
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
http://www.csharpfr.com/code.aspx?ID=27738


ce source devrait t'aider pour les requete parametre :)


decidement je vais faire une reponse automatique avec ce source moi :)


<hr />Arthenius
"Ce qui ne me tue pas, me rend plus fort..."