Comment enregistrer une photo dans une base de donnée access [Résolu]

yayoyanga 10 Messages postés mardi 25 mars 2014Date d'inscription 7 avril 2014 Dernière intervention - 25 mars 2014 à 12:12 - Dernière réponse : vb95 1659 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 17 septembre 2018 Dernière intervention
- 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;

Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
DevLama 353 Messages postés mercredi 13 avril 2011Date d'inscription 10 janvier 2018 Dernière intervention - Modifié par Whismeril le 25/03/2014 à 18:36
2
Merci
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

Merci DevLama 2

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Whismeril 12023 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 septembre 2018 Dernière intervention - 25 mars 2014 à 18:38
Même correction pour le même motif
Commenter la réponse de DevLama
yayoyanga 10 Messages postés mardi 25 mars 2014Date d'inscription 7 avril 2014 Dernière intervention - Modifié par Whismeril le 25/03/2014 à 18:36
1
Merci
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!!!
Whismeril 12023 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 septembre 2018 Dernière intervention - 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.
Commenter la réponse de yayoyanga
yayoyanga 10 Messages postés mardi 25 mars 2014Date d'inscription 7 avril 2014 Dernière intervention - Modifié par Whismeril le 25/03/2014 à 18:38
1
Merci
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!!!
Whismeril 12023 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 septembre 2018 Dernière intervention - 25 mars 2014 à 18:39
Jamais deux sans trois '-)
Commenter la réponse de yayoyanga
yayoyanga 10 Messages postés mardi 25 mars 2014Date d'inscription 7 avril 2014 Dernière intervention - 26 mars 2014 à 09:27
1
Merci
je vous attend!!!!
yayoyanga 10 Messages postés mardi 25 mars 2014Date d'inscription 7 avril 2014 Dernière intervention - 26 mars 2014 à 16:00
regarde ma première demande Mr
Whismeril 12023 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 septembre 2018 Dernière intervention - 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
yayoyanga 10 Messages postés mardi 25 mars 2014Date d'inscription 7 avril 2014 Dernière intervention - 26 mars 2014 à 16:27
"et Mindingo doit être occupé ailleurs" je pas compris ton message!!!!
Whismeril 12023 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 septembre 2018 Dernière intervention - 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
DevLama 353 Messages postés mercredi 13 avril 2011Date d'inscription 10 janvier 2018 Dernière intervention - 27 mars 2014 à 13:34
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", donneebinaire);// c'est ici que je veut des explications
Commenter la réponse de yayoyanga
remiki90 107 Messages postés samedi 28 juillet 2012Date d'inscription 11 mars 2018 Dernière intervention - 28 mars 2014 à 10:58
1
Merci
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);
                }
            }
        }

yayoyanga 10 Messages postés mardi 25 mars 2014Date d'inscription 7 avril 2014 Dernière intervention - 31 mars 2014 à 10:21
Merci Beaucoup MINDONGO, ça marche
Commenter la réponse de remiki90
0
Merci
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.
vb95 1659 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 17 septembre 2018 Dernière intervention - 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
Commenter la réponse de Bedy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.