Le paramètre n'est pas valide

yayoyanga Messages postés 10 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 7 avril 2014 - 31 mars 2014 à 10:37
yayoyanga Messages postés 10 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 7 avril 2014 - 7 avril 2014 à 10:36
Bonjour,

en voulant afficher une photo, après qu'elle soit enregistrée,

un message d'erreur m'est affiché "L'Exception ArgumentException n'a pas été Gérée"

voici les codes tenté

void prece_dent()
        {
            //try{
                if (INDEX != 1)
                {
                    INDEX--;
                    lblenre.Text = "" + INDEX + " / " + rowCount;
                    OdbcConnection cnx = new OdbcConnection("DSN=*****");
                    cnx.Open();
                    OdbcDataReader dtr;
                    OdbcCommand comded = new OdbcCommand("select *from client");
                    comded.Connection = cnx;
                    dtr = comded.ExecuteReader();
                    for (int i = 0; i < INDEX; i++) dtr.Read();
                    code_client.Text = dtr.GetInt32(0).ToString();
                    nom.Text = dtr.GetString(1);
                    prenom.Text = dtr.GetString(2);
                    societe.Text = dtr.GetString(3);
                    date_naissance.Text = dtr.GetDate(4).ToString();
                    lieu_naissance.Text = dtr.GetString(5);
                    adresse.Text = dtr.GetString(6);
                    tel.Text = dtr.GetInt32(7).ToString();
                    fax.Text = dtr.GetInt32(8).ToString();
                    e_mail.Text = dtr.GetString(9);
                    compte_bancaire.Text = dtr.GetInt32(10).ToString();
                    banque.Text = dtr.GetString(11);
                    OdbcDataAdapter adpt = new OdbcDataAdapter(comded);
                    dtr.Close();
                    DataSet ds = new DataSet();
                    adpt.Fill(ds, "client");
                    int c = ds.Tables["client"].Rows.Count;
                    if (c > 0)
                    {
                        Byte[] btpht = new Byte[0];
                        btpht = (Byte[])(ds.Tables["client"].Rows[c - 1]["photo"]);
                        MemoryStream phtosssss = new MemoryStream(btpht);

                        //try
                        //{
                       // c'est ici que le msg est affiché
                            pictureBox1.Image = Image.FromStream(phtosssss);
                            
                       // }
                        //catch (Exception ex)
                        //{ MessageBox.Show(ex.Message); }
                    }


                    cnx.Close();
                    if (INDEX == 1)
                    {
                        cmdprev.Enabled = false;
                        SUIVANTS.Enabled = false;
                    }
                    cmdnext.Enabled = true;
                    SUIVANTS.Enabled = true;
                    d_client.UnSelect(selec);
                    d_client.Select(INDEX - 1);
                    selec = INDEX - 1;
                //}
            }
            //catch(Exception ex)
           // { MessageBox.Show(ex.Message); }


3 réponses

yayoyanga Messages postés 10 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 7 avril 2014 3
31 mars 2014 à 13:47
le problème se répose ici:

DataSet ds = new DataSet();
                    adpt.Fill(ds, "client");
                    int c = ds.Tables["client"].Rows.Count;
                    if (c > 0)
                    {
                        Byte[] btpht = new Byte[0];
                        btpht = (Byte[])(ds.Tables["client"].Rows[c - 1]["photo"]);
                        MemoryStream phtosssss = new MemoryStream(btpht);

                        try
                        {
                        //c'est ici que le msg est affiché
                            pictureBox1.Image = Image.FromStream(phtosssss);// ICI LE MESSAGE EST AFFICHE
                            
                        }
                        catch (Exception ex)
                        { MessageBox.Show(ex.Message); }
                    }

0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
6 avril 2014 à 15:14
Bonjour

A priori il n'y a pas de raison que cela ne fonctionne pas, ton code me semble correct.
Es-tu certain que dans la base de données la colonne "photo" contient la sérialisation d'une image ?
0
yayoyanga Messages postés 10 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 7 avril 2014 3
7 avril 2014 à 10:36
j'ai crée une BDD access, c'est ne pas sql server

et le type est d'objet OLE
je constate que c'est laba ou se répose le problème, puis j'ai vérifié
le contenu de mon tableau d'octets "btpht",donc btpht.length ={byte [8]}
0
Rejoignez-nous