Comment enregistrer une photo dans une base de donnée access

Résolu
yayoyanga Messages postés 10 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 7 avril 2014 - 25 mars 2014 à 12:12
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 13 juil. 2018 à 22:43
Salut,

débutant que je suis, je vous en pris de m'aider pour que j'enregistre une photo dans ma base des données access via picturebox;

6 réponses

DevLama Messages postés 356 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 18 novembre 2021 10
Modifié par Whismeril le 25/03/2014 à 18:36
Tout d'abord tu dois convertir l'image en Binaire au niveau du code C# et dans ta BD tu dois créer une colonne de type OLE.

public static Image(byte[]bt){

MemoryStream strm=new MemoryStream(bt);
Image img=Image.FromStream(strm);
return img
}

//Conversion Image en binaire
public static byte[] Tobytes(String pathing){
MemoryStream strm=new MemoryStream();
Image img=Image.FromFile(pathing);
img.save(strm,System.Drawning.Imaging.ImageFormat.Bmp);
return strm.getBuffer();

}


La Science est Grande et Vaste partageons cette connaisance
2
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
25 mars 2014 à 18:38
Même correction pour le même motif
0
yayoyanga Messages postés 10 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 7 avril 2014 3
Modifié par Whismeril le 25/03/2014 à 18:36
en fait, voici le peut de code que j'ai réalisé mais jene sais comment ajouter la photo

 public CLIENT()
  {
   //
   // Requis pour la prise en charge du Concepteur Windows Forms
   //
   InitializeComponent();

   //
   // TODO : ajoutez le code du constructeur après l'appel à InitializeComponent
   //
  }
    
void enregfistrer()
        {     
            OdbcConnection cnx = new OdbcConnection("DSN=*****");
            try
            {
                cnx.Open();
            }
            catch
            {
                MessageBox.Show("Echec de la Connexion");
            }
            finally
            {
                int abc;

                System.Data.Odbc.OdbcCommand commd = new System.Data.Odbc.OdbcCommand("insert into client(code_client,nom,prenom,societe,date_naissance,lieu_naissance,adresse,tel,fax,e_mail,compte_bancaire,banque) values(?,?,?,?,?,?,?,?,?,?,?,?)", cnx);
                commd.Parameters.Add("code_client", Convert.ToDecimal(code_client.Text));
                commd.Parameters.Add("nom", nom.Text.ToUpper());
                commd.Parameters.Add("prenom", prenom.Text.ToUpper());
                if (societe.Text != "")

                    commd.Parameters.Add("societe", societe.Text);

                else

                    commd.Parameters.Add("societe", "anonyme");
                commd.Parameters.Add("date_naissance", @Convert.ToDateTime(date_naissance.Text));
                commd.Parameters.Add("lieu_naissance", lieu_naissance.Text);

                if (adresse.Text != "")
                    commd.Parameters.Add("adresse", adresse.Text);
                else
                    commd.Parameters.Add("adresse", "anonyme");
                if (tel.Text != "")
                    commd.Parameters.Add("tel", @Convert.ToDecimal(tel.Text));
                else
                    commd.Parameters.Add("tel", @Convert.ToDecimal("00000000"));
                if (fax.Text != "")
                    commd.Parameters.Add("fax", @Convert.ToDecimal(fax.Text));
                else
                    commd.Parameters.Add("fax", @Convert.ToDecimal("00000000"));
                if (e_mail.Text != "")
                    commd.Parameters.Add("e_mail", e_mail.Text);
                else
                    commd.Parameters.Add("e_mail", "anonyme");

                commd.Parameters.Add("compte_bancaire", compte_bancaire.Text);
                commd.Parameters.Add("banque", banque.Text);

                try
                {
                    if (nom.Text != "" && prenom.Text != "" && date_naissance.Text != "" && lieu_naissance.Text != "" && tel.Text != "" && banque.Text != "" && compte_bancaire.Text != "")
                    {
                        abc = commd.ExecuteNonQuery();
                        commd.Parameters.Clear();
                        MessageBox.Show(this, "Le Client a été Ajouté", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        //MAB
                        Initia();
                        code_client.Text = "";
                        nom.Text = "";
                        prenom.Text = "";
                        societe.Text = "";
                        date_naissance.Text = "";
                        lieu_naissance.Text = "";
                        adresse.Text = "";
                        tel.Text = "";
                        fax.Text = "";
                        e_mail.Text = "";
                        compte_bancaire.Text = "";
                        banque.Text  ="";
                    }
                    else
                        MessageBox.Show(this, "Vous devez remplir au moins les champs Obligatoire * ", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch
                {
                    MessageBox.Show(this, "Client déja existant", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }


donc je compte ajouter le picturebox

Ne perdez jamais courage!!!
1
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
25 mars 2014 à 18:38
Correction de la coloration syntaxique, en utilisant la liste déroulante à drote de l'icône <>, tu peux choisir le langage. Sinon le site choisi tout seul et ça n'est pas toujours efficient.
0
yayoyanga Messages postés 10 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 7 avril 2014 3
Modifié par Whismeril le 25/03/2014 à 18:38
maintenant à ce stade Mr OKOSA
System.Data.Odbc.OdbcCommand commd = new System.Data.Odbc.OdbcCommand("insert into client(code_client,nom,prenom,societe,date_naissance,lieu_naissance,adresse,tel,fax,e_mail,compte_bancaire,banque,Photo) values(?,?,?,?,?,?,?,?,?,?,?,?)", cnx)

//
 commd.Parameters.Add("Photo", Convert.*****(picturebox****));// c'est ici que je veut des explications


//
Ne perdez jamais courage!!!
1
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
25 mars 2014 à 18:39
Jamais deux sans trois '-)
0
yayoyanga Messages postés 10 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 7 avril 2014 3
26 mars 2014 à 09:27
je vous attend!!!!
1
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
26 mars 2014 à 15:51
Bonjour,
Merci de garder à l'esprit que CodeS-SourceS est une communauté d'entraide. Toutes les réponses sur le forum sont assurées par des bénévoles qui donnent de leur temps libre pour aider à résoudre les problèmes.

A noter également que nous ne faisons pas dans le "tout cuit". Soit tu trouves ton bonheur dans la partie source du site, soit à l'aide de ton moteur de recherche favori. Ici, nous aidons volontiers sur des sujets techniques précis.

ici et des conseils d'écriture des messages.

ici comment utiliser la coloration syntaxique.

Et enfin, le plus important





Merci donc de reformuler ta demande en respectant ces quelques points.
0
yayoyanga Messages postés 10 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 7 avril 2014 3
26 mars 2014 à 16:00
regarde ma première demande Mr
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
26 mars 2014 à 16:16
Oui ton premier message est à peu près conforme, mais pas ceci
je vous attend!!!!


Je n'ai pas bloqué ton message, ou pire encore, mais un petit rappel.
Si Mondingo ou personne d'autre n'as encore répondu et bien c'est que ceux qui ont vu ton message aujourd'hui (dont moi) ne savent pas et Mindingo doit être occupé ailleurs. C'est le sens de
Toutes les réponses sur le forum sont assurées par des bénévoles qui donnent de leur temps libre pour aider à résoudre les problèmes
0
yayoyanga Messages postés 10 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 7 avril 2014 3
26 mars 2014 à 16:27
"et Mindingo doit être occupé ailleurs" je pas compris ton message!!!!
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
26 mars 2014 à 17:47
Et bien il ou elle a des occupations dans la vraie vie qui font qu'il ou elle vient sur le forum quand il ou elle peut
0

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

Posez votre question
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021 3
28 mars 2014 à 10:58
je te conseil de commencer par ici:

ton Picturebox=pictureimg

ajoute un boutons de commande btn_Insérer_Image avec ces codes:

private void btn_Insérer_Image_Click(object sender, EventArgs e)
            {
                try{
                OpenFileDialog imgdlg =new OpenFileDialog ();
                    imgdlg.Title ="Selectionner la photo du CLIENT";
                    imgdlg.CheckFileExists=true;
                    imgdlg.InitialDirectory=Application.StartupPath;
                    imgdlg.Filter="Fichiers image (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*";
                    imgdlg.FilterIndex=1;
                    imgdlg.RestoreDirectory=true;

                    if (imgdlg.ShowDialog()==DialogResult.OK)
                    {
                    pictureimg.Image=(Image)new Bitmap(imgdlg.FileName);
                    }               
                }

                catch (Exception lol)
                {MessageBox.Show (string.Concat("Erreur",lol.Message));}
            }
    }



puis lors de ton enregistrement tu ajoute:

void save()
        {
            MemoryStream saveimg = new MemoryStream();
            pictureimg.Image.Save(saveimg,System.Drawing.Imaging.ImageFormat.Jpeg);
            Byte[] btmg = saveimg.GetBuffer();
            
            OdbcConnection cnx = new OdbcConnection("DSN=******");
            try
            {
                cnx.Open();
            }
            catch
            {
                MessageBox.Show("Echec de la Connexion");
            }
            finally
            {
                int abc;

                System.Data.Odbc.OdbcCommand commd = new System.Data.Odbc.OdbcCommand("insert into client(code_client,nom,prenom,societe,date_naissance,lieu_naissance,adresse,tel,fax,e_mail,compte_bancaire,banque,photo) values(?,?,?,?,?,?,?,?,?,?,?,?,?)", cnx);
                commd.Parameters.Add("code_client", Convert.ToDecimal(code_client.Text));
                commd.Parameters.Add("nom", nom.Text.ToUpper());
                commd.Parameters.Add("prenom", prenom.Text.ToUpper());
                if (societe.Text != "")

                    commd.Parameters.Add("societe", societe.Text);

                else

                    commd.Parameters.Add("societe", "anonyme");
                commd.Parameters.Add("date_naissance", @Convert.ToDateTime(date_naissance.Text));
                commd.Parameters.Add("lieu_naissance", lieu_naissance.Text);

                if (adresse.Text != "")
                    commd.Parameters.Add("adresse", adresse.Text);
                else
                    commd.Parameters.Add("adresse", "anonyme");
                if (tel.Text != "")
                    commd.Parameters.Add("tel", @Convert.ToDecimal(tel.Text));
                else
                    commd.Parameters.Add("tel", @Convert.ToDecimal("00000000"));
                if (fax.Text != "")
                    commd.Parameters.Add("fax", @Convert.ToDecimal(fax.Text));
                else
                    commd.Parameters.Add("fax", @Convert.ToDecimal("00000000"));
                if (e_mail.Text != "")
                    commd.Parameters.Add("e_mail", e_mail.Text);
                else
                    commd.Parameters.Add("e_mail", "anonyme");

                commd.Parameters.Add("compte_bancaire", compte_bancaire.Text);
                commd.Parameters.Add("banque", banque.Text);
                if (societe.Text != "")

                    commd.Parameters.Add("societe", societe.Text);
                else 
                   
                    commd.Parameters.Add("photo", OdbcType.VarBinary, btmg.Length);

                try
                {
                    if (nom.Text != "" && prenom.Text != "" && date_naissance.Text != "" && lieu_naissance.Text != "" && tel.Text != "" && banque.Text != "" && compte_bancaire.Text != "")
                    {
                        abc = commd.ExecuteNonQuery();
                        commd.Parameters.Clear();
                        MessageBox.Show(this, "Le Client a été Ajouté", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        //MAB
                        Initia();
                        code_client.Text = "";
                        nom.Text = "";
                        prenom.Text = "";
                        societe.Text = "";
                        date_naissance.Text = "";
                        lieu_naissance.Text = "";
                        adresse.Text = "";
                        tel.Text = "";
                        fax.Text = "";
                        e_mail.Text = "";
                        compte_bancaire.Text = "";
                        banque.Text  ="";
                    }
                    else
                        MessageBox.Show(this, "Vous devez remplir au moins les champs Obligatoire * ", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch
                {
                    MessageBox.Show(this, "Client déja existant", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

1
yayoyanga Messages postés 10 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 7 avril 2014 3
31 mars 2014 à 10:21
Merci Beaucoup MINDONGO, ça marche
0
slt, comment pouvez m'aider. je suis d'entraun de sauvegarder une imade dans une base de donnees mais l'image viens d'un picturebox qui n'a pas été pathé mais d'une generation de codebar. voici mes ligne de codes.

private void button7_Click(object sender, EventArgs e)
        {
            string c = txtcode.Text;
            string n = txtnompro.Text;
            string p = txtprixpro.Text;
            string t = txtdesc.Text;
            DateTime d = DateTime.Now;

// a partir de la 
            string imgpict = "";
            byte[] img = null;
            imgpict = pictureBox.ToString();
            pictureBox.ImageLocation = imgpict;
            FileStream fs = new FileStream (imgpict, FileMode.Open, FileAccess.Read);
            BinaryReader rd = new BinaryReader (fs);
            img = rd.ReadBytes((int)fs.Length);
          
            string req = co.EnregistrerProduits(c, n, p,d, t,img);
            MessageBox.Show(req);


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
13 juil. 2018 à 22:43
Bonjour
il est d'usage de ne pas se greffer sur un post existant afin de poser sa propre question
Ouvre ta propre discussion
Merci
0
Rejoignez-nous