bonjour,
suis entrain de faire une application en C#, mais lors de l'Exécution, dans le
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Menu_Général ());
}
il y a ce message
**************************
l'Exeption ObjectDisposedException n'a pas été Gérée
"""""""""""""""""""""""""""""""
Impossible d'accéder à un objet supprimé.
Nom de l'objet : 'Button'.
""""""""""""""""""""""""""""""
c'est juste après avoir lancer la connexion (Formulaire d'authentification)
if(this.MdiParent.Menu.MenuItems[0].MenuItems[0].Text =="Connexion")
{
OdbcConnection cn = new OdbcConnection("DSN=KINGMINDONGO");
try
{
cn.Open();
}
catch
{
MessageBox.Show("ERREUR LORS DE LA CONNEXION");
}
finally
{
OdbcCommand comm;
comm=new OdbcCommand("select * from utilisateur where login=? and mot_de_passe=?",cn);
comm.Parameters.Add("login",login.Text);
comm.Parameters.Add("mot_de_passe",mot_de_passe.Text);
comm.Connection=cn;
OdbcDataReader rs;
try
{
rs=comm.ExecuteReader();
if (rs.Read())
{
if(rs.GetString(2)== "administrateur")
{
this.MdiParent.Menu.MenuItems[1].Visible=true;
this.MdiParent.Menu.MenuItems[2].Visible=true;
this.MdiParent.Menu.MenuItems[3].Visible=true;
this.MdiParent.Menu.MenuItems[4].Visible=true;
this.MdiParent.Menu.MenuItems[5].Visible=true;
}
else
{
this.MdiParent.Menu.MenuItems[3].Visible=true;
this.MdiParent.Menu.MenuItems[4].Visible=true;
}
this.MdiParent.Menu.MenuItems[0].MenuItems[0].Text = "Déconnexion" ;
this.MdiParent.Text=this.MdiParent.Text +" ********** BE WELCOME "+rs.GetString(5)+" "+rs.GetString(3)+" "+rs.GetString(4)+" ********** ";
this.Close();
}
else
MessageBox.Show(this,"Login ou Mot de passe invalide","",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
catch(Exception er)
{
MessageBox.Show(this,"Login ou Mot de passe invalide","",MessageBoxButtons.OK,MessageBoxIcon.Error);
login.Text=er.ToString();
}
}
}
Cursor = Cursors.Arrow;
}
}
}
si quelqu'un peut m'aider à le résoudre car je suis limité pour ça
dodo7263
Messages postés614Date d'inscriptionmercredi 10 septembre 2008StatutMembreDernière intervention 9 février 20176 20 déc. 2012 à 15:17
Salut,
Quelle est la ligne qui lève l'exception ?
Le message est clair, dans ton code (qui n'est pas entier ici), tu dois faire un dispose en quelque part du style button.dispose(). Du coup tu essais d'acceder à un objet qui "n'existe plus".
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 6 févr. 2013 à 09:09
Salut,
il ne faut justement pas faire de Button.Dispose().
object.Dispose() correspond à la désallocation mémoire d'un objet, et doit être, le plus souvent, laissée au ramasse-miettes.
Deux petites remarques :
- utilise les balise [ code ] pour que ton code soit plus lisible,
- je crois que tu te méprends sur le fonctionnement du finally, ce dernier block est exécuté même dans le cas où une exception est levée.