Lorsque j'exécute ce code j'ai l'exeption suivante:
"System.NullReferenceException: Object reference not set to an instance of an object"
Voici le code:
private void bt_valider_Click(object sender, System.EventArgs e)
{
OdbcConnection cn = new OdbcConnection("DSN=cp22");
int rs1;
try
{
cn.Open();
}
catch
{
MessageBox.Show("Failed to connect to data source");
}
finally
{
OdbcCommand comm;
comm = new OdbcCommand("select * from utilisateur where login=?", cn);
comm.Parameters.Add("login", login.Text);
OdbcDataReader rs;
try
{
rs = comm.ExecuteReader();
if (rs.Read())
{
if (rs.GetString(1) == pass.Text)
{
rs.Close();
OdbcCommand cmd1 = new OdbcCommand("update utilisateur set login=?,mot_de_passe=?,niveau=? where login=?", cn);
// cmd1.Parameters.Add("login", login_new.Text);
cmd1.Parameters.Add( "mot_de_passe", pass_new.Text);
if (type_new.SelectedItem.ToString() == "")
cmd1.Parameters.Add("type", "u");
if (type_new.SelectedItem.ToString() == "Administrateur")
cmd1.Parameters.Add("type", "a");
if (type_new.SelectedItem.ToString() == "utilisateur")
cmd1.Parameters.Add("type", "u");
cmd1.Parameters.Add("", login.Text);
rs1 = cmd1.ExecuteNonQuery();
MessageBox.Show(this, "User modified", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
login.Text = "";
pass.Text = "";
login_new.Text = "";
pass_new.Text = "";
}
else
MessageBox.Show(this, "Invalid old password ", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
MessageBox.Show(this, "User does not exist", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
la plupart des lignes peuvent lever cette exception.
L'erreur est explicite : tu essaies d'accéder à une méthode/membre d'un objet non instancié (null). A toi de trouver sur quelle ligne cela intervient (grâce au mode debug "pas à pas" par exemple).
Si tu trouves la ligne qui fait planter mais que tu ne comprends pas le pourquoi du comment, reviens ici pour nous la donner et on t'aidera à comprendre ;)
Merci pou votre réponse.Ma faute est dans la ligne suivante:
comm.Parameters.Add("login", login.Text);
Est vous pouvez s'il vous plait m'aider pour corriger cette faute et merci d'avance
alors elle est où l'erreur, sur l'ajout du paramètre ou sur l'exécution de la requête ? ^^
Et je t'avouerai que j'ai du mal à appréhender ton code. Déjà, ouvrir la connexion dans un try{} pour exécuter une commande dans un finally{} c'est plutôt étrange. En effet si ta connexion n'arrive pas à s'ouvrir tu vas quand même tenter d'y exécuter ta requête ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
La connexion à la base de données est etablie car je ne peux accèder à mon application qu'après modification de mot de passe et login du tableau utilisateur.la fonction edit fait aussi la vérification car qu'on je met un mot de passe ou un login faux il me dit.Vraiment moi aussi je ne trouve pas ou est ma faute.