cs_sawass
Messages postés19Date d'inscriptionjeudi 5 mai 2011StatutMembreDernière intervention11 juin 2011
-
7 juin 2011 à 14:13
cs_sawass
Messages postés19Date d'inscriptionjeudi 5 mai 2011StatutMembreDernière intervention11 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);
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 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 ;)
cs_sawass
Messages postés19Date d'inscriptionjeudi 5 mai 2011StatutMembreDernière intervention11 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
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 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 ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_sawass
Messages postés19Date d'inscriptionjeudi 5 mai 2011StatutMembreDernière intervention11 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.