yelima
Messages postés86Date d'inscriptionmardi 12 février 2002StatutMembreDernière intervention 8 novembre 2009
-
29 août 2008 à 18:00
Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 2011
-
1 sept. 2008 à 16:30
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
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 31 août 2008 à 15:49
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".