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

Messages postés
10
Date d'inscription
mardi 25 mars 2014
Dernière intervention
7 avril 2014
- 25 mars 2014 à 12:12 - Dernière réponse :
Messages postés
1702
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
15 novembre 2018
- 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
Messages postés
353
Date d'inscription
mercredi 13 avril 2011
Dernière intervention
10 janvier 2018
- 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é 88 internautes ce mois-ci

Messages postés
12255
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 novembre 2018
- 25 mars 2014 à 18:38
Même correction pour le même motif
Commenter la réponse de DevLama
Messages postés
10
Date d'inscription
mardi 25 mars 2014
Dernière intervention
7 avril 2014
- 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!!!
Messages postés
12255
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 novembre 2018
- 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
Messages postés
10
Date d'inscription
mardi 25 mars 2014
Dernière intervention
7 avril 2014
- 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!!!
Messages postés
12255
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 novembre 2018
- 25 mars 2014 à 18:39
Jamais deux sans trois '-)
Commenter la réponse de yayoyanga
Messages postés
10
Date d'inscription
mardi 25 mars 2014
Dernière intervention
7 avril 2014
- 26 mars 2014 à 09:27
1
Merci
je vous attend!!!!
Messages postés
10
Date d'inscription
mardi 25 mars 2014
Dernière intervention
7 avril 2014
- 26 mars 2014 à 16:00
regarde ma première demande Mr
Messages postés
12255
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 novembre 2018
- 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
Messages postés
10
Date d'inscription
mardi 25 mars 2014
Dernière intervention
7 avril 2014
- 26 mars 2014 à 16:27
"et Mindingo doit être occupé ailleurs" je pas compris ton message!!!!
Messages postés
12255
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 novembre 2018
- 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
Messages postés
353
Date d'inscription
mercredi 13 avril 2011
Dernière intervention
10 janvier 2018
- 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
Messages postés
107
Date d'inscription
samedi 28 juillet 2012
Dernière intervention
11 mars 2018
- 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);
                }
            }
        }

Messages postés
10
Date d'inscription
mardi 25 mars 2014
Dernière intervention
7 avril 2014
- 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.
Messages postés
1702
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
15 novembre 2018
- 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.