Exception

cs_sawass Messages postés 19 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 11 juin 2011 - 7 juin 2011 à 14:13
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.

5 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
7 juin 2011 à 15:57
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 ;)
0
cs_sawass Messages postés 19 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 11 juin 2011
7 juin 2011 à 21:05
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
0
cs_sawass Messages postés 19 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 11 juin 2011
8 juin 2011 à 16:27
L'exeption est dans cette ligne:
rs = comm.ExecuteReader();
Est ce que vous pouvez m"aider s'il vous plait.
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
8 juin 2011 à 16:44
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 ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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.
0
Rejoignez-nous