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
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".