Afficher une image d'une BDD dans une picturebox

Lecan Messages postés 5 Date d'inscription mardi 4 mai 2010 Statut Membre Dernière intervention 22 décembre 2010 - 16 déc. 2010 à 18:44
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 16 déc. 2010 à 22:10
Bonjour,

J'arrive à insérer une image dans une BDD sans souci et celle-ci est bien présente sous la forme binaire dans cette BDD. Le souci c'est que je n'arrive pas à la réafficher dans une autre picturebox. J'ai pourtant bien associer le bindingsource issu du DataSet à la pictureBox mais rien ni fait et mes faibles connaissances font que je sèche...

Par avance merci pour votre aide et éventuelles pistes
Lecan

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 déc. 2010 à 21:34
Salut,

Merci d'indiquer comment tu as rentré l'image
et comment tu la resort pour pouvoir t'aider

Les datasets ne gere pas les images il me semble

Merci
0
Lecan Messages postés 5 Date d'inscription mardi 4 mai 2010 Statut Membre Dernière intervention 22 décembre 2010
16 déc. 2010 à 21:54
Merci pour ta réponse
Voilà la fonction que j'utilise

 public byte[] PictureBoxImageToBytes(PictureBox picBox)
        {
            if ((picBox != null) && (picBox.Image != null))
            {
                Bitmap bmp = new Bitmap(picBox.Image);
                MemoryStream ms = new MemoryStream();

                bmp.Save(ms, ImageFormat.Bmp);

                byte[] buff = ms.ToArray();

                ms.Close();
                ms.Dispose();
                return buff;
            }
            else
            {
                return null;
            }
        }


et ensuite

                  //Conversion de la photo en byte
                byte[] v_Affiche = PictureBoxImageToBytes(PictBox_User);

                try
                {
                    
                  //Insertion des données dans la table
                        FonctionsSGBD.ExecQuery
                        (
                        "INSERT INTO PERSONNE" +
                        " (PERS_NOM," +
                        " PERS_PRENOM," +
                        " PERS_ADRESSE," +
                        " PERS_CP," +
                        " PERS_VILLE," +
                        " PERS_TEL," +
                        " PERS_EMAIL," +
                        " PERS_IDENTIFIANT," +
                        " PERS_MDP," +
                        " PERS_PHOTO)" +
                        " VALUES " +
                        "(@Nom," +
                        " @Prenom," +
                        " @Adresse," +
                        " @CP," +
                        " @Ville," +
                        " @Tel," +
                        " @Email," +
                        " @Identifiant," +
                        " @MDP," +
                        " @Photo)",
                        new ParamProcStock("@Nom", tb_Nom.Text),
                        new ParamProcStock("@Prenom", tb_Prenom.Text),
                        new ParamProcStock("@Adresse", tb_Adresse.Text),
                        new ParamProcStock("@CP", maskedTb_CP.Text),
                        new ParamProcStock("@Ville", tb_Ville.Text),
                        new ParamProcStock("@Tel", maskedTb_Tel.Text),
                        new ParamProcStock("@Email", v_email),
                        new ParamProcStock("@Identifiant", tb_Identifiant.Text),
                        new ParamProcStock("@MDP", tb_MDP.Text),
                        new ParamProcStock("@Photo", v_Affiche)
                        );

                        MessageBox.Show("Nouvel utilisateur créé avec succès", "Information", MessageBoxButtons.OK);
                        Close();
                    }



Pour la ressortir, j'utilise un bindingsource que je configure et une picturebox. Dans la picturebox, au niveau des databindings, j'appelle le bindingsource
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 déc. 2010 à 22:10
http://support.microsoft.com/kb/317670


l'exemple en vb.net
Apres pour passer par une binding source il faut peut etre un
objet intermediaire?

   Dim cn As New SqlConnection(strCn)
        Dim cmd As New SqlCommand("SELECT BLOBID, " & _
            "BLOBData FROM BLOBTest ORDER BY BLOBID", cn)
        Dim da As New SqlDataAdapter(cmd)
        Dim ds As New DataSet()
        da.Fill(ds, "BLOBTest")
        Dim c As Integer = ds.Tables("BLOBTest").Rows.Count
        If c > 0 Then
            Dim bytBLOBData() As Byte = _
                ds.Tables("BLOBTest").Rows(c - 1)("BLOBData")
            Dim stmBLOBData As New MemoryStream(bytBLOBData)
            picBLOB.Image = Image.FromStream(stmBLOBData)
        End If
0
Rejoignez-nous