Exception

Messages postés
19
Date d'inscription
jeudi 5 mai 2011
Statut
Membre
Dernière intervention
11 juin 2011
- - Dernière réponse : cs_sawass
Messages postés
19
Date d'inscription
jeudi 5 mai 2011
Statut
Membre
Dernière intervention
11 juin 2011
- 8 juin 2011 à 21:12
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);

}
catch (Exception eo)
{
// MessageBox.Show(this, "Error System", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
login.Text = eo.ToString();

}

}
cn.Close();
}




Est ce quelqu'un peut m'aider s'il vous plait à corriger cette faute et merci d'avance.
Afficher la suite 

5 réponses

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
Salut,

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 ;)
Commenter la réponse de cs_jopop
Messages postés
19
Date d'inscription
jeudi 5 mai 2011
Statut
Membre
Dernière intervention
11 juin 2011
0
Merci
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
Commenter la réponse de cs_sawass
Messages postés
19
Date d'inscription
jeudi 5 mai 2011
Statut
Membre
Dernière intervention
11 juin 2011
0
Merci
L'exeption est dans cette ligne:
rs = comm.ExecuteReader();
Est ce que vous pouvez m"aider s'il vous plait.
Commenter la réponse de cs_sawass
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
Re,

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 ...
Commenter la réponse de cs_jopop
Messages postés
19
Date d'inscription
jeudi 5 mai 2011
Statut
Membre
Dernière intervention
11 juin 2011
0
Merci
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.
Commenter la réponse de cs_sawass