IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Afficher image SQL via c#


Sujet :

C#

  1. #1
    Membre éclairé Avatar de kratoce
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2012
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2012
    Messages : 270
    Par défaut Afficher image SQL via c#
    Bonjour.

    Je voudrais afficher une image qui est contenue dans une base de données SQL. Le souci, c'est que je sais afficher du texte, mais j'ai aucune idée de comment faire pour afficher une image (quelle type, quelle commande etc...).

    Je vous remercie de votre aide

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705

  3. #3
    Membre éclairé Avatar de kratoce
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2012
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2012
    Messages : 270
    Par défaut
    J'ai trouver ce lien mais j'ai du mal a comprendre le code

  4. #4
    Membre éclairé Avatar de kratoce
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2012
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2012
    Messages : 270
    Par défaut
    Oups pas vu votre message GuruuMeditation désolé je regarde sa tout de suite

  5. #5
    Membre éclairé Avatar de kratoce
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2012
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2012
    Messages : 270
    Par défaut
    En gros si j'ai bien compris, il faut que je fasse un Cast ?
    L'image est stocké en byte c'est sa ?

  6. #6
    Membre éclairé Avatar de kratoce
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2012
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2012
    Messages : 270
    Par défaut
    Je vous donne mon code pour mieux visualiser se que je voudrais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Data.SqlClient;
    using System.Data;
    using System.IO;
    using System.Web;
     
    namespace VisualWebPartProject2.VisualWebPart1
    {
        public partial class VisualWebPart1UserControl : UserControl
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                try
                {
                    SqlConnection sqlConn = new SqlConnection("Data Source=APPRENTI_INFO\\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=test;initial catalog=test;user id=admin;password=montoya2001;Connect Timeout=10");
                    SqlDataAdapter sqlAdapt = new SqlDataAdapter(@"SELECT * FROM Table_1", sqlConn);
                    SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(sqlAdapt);
                    DataSet sqlSet = new DataSet();
                    sqlAdapt.Fill(sqlSet, "Table_1");
     
                    foreach (DataRow dr in sqlSet.Tables["Table_1"].Rows)
                    {
                        LB_affichage.Text += "<DIV class=ms-rte-layoutszone-inner>";
                        LB_affichage.Text += "<TABLE style=\"TEXT-ALIGN: justify; BORDER-RIGHT-WIDTH: 0px; BACKGROUND-COLOR: rgb(214,229,249); WIDTH: 782px; FONT-FAMILY: 'trebuchet ms'; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; FONT-SIZE: 12px; BORDER-LEFT-WIDTH: 0px\" class=ms-rteTable-6 border=0 cellSpacing=2 cellPadding=1>";
                        LB_affichage.Text += "<TBODY>";
                        LB_affichage.Text += "<TR class=ms-rteTableEvenRow-6>";
                        LB_affichage.Text += "<TD style=\"WIDTH: 153px\" class=ms-rteTableEvenCol-6>Nom du jeu</TD>";
                        LB_affichage.Text += "<TD class=ms-rteTableOddCol-6><SPAN style=\"FONT-WEIGHT: bold\">" + "<h3>" + "<font color=\"blue\">" + dr["Nom"].ToString() + "</font>" + "</h3>" + "</SPAN></TD></TR>";
     
                        LB_affichage.Text += "<TR class=ms-rteTableOddRow-6>";
                        LB_affichage.Text += "<TD class=ms-rteTableEvenCol-6>Console</TD>";
                        LB_affichage.Text += "<TD class=ms-rteTableOddCol-6 align=left><SPAN>" + dr["Console"].ToString() + "</SPAN></TD></TR>";
     
                        LB_affichage.Text += "<TR class=ms-rteTableEvenRow-6>";
                        LB_affichage.Text += "<TD class=ms-rteTableEvenCol-6>Jaquette</TD>";
                        LB_affichage.Text += "<TD class=ms-rteTableOddCol-6><SPAN>" + dr["Image"].ToString() +  "</SPAN></TD></TR>";
     
                        LB_affichage.Text += "<TR class=ms-rteTableOddRow-6>";
                        LB_affichage.Text += "<TD class=ms-rteTableEvenCol-6>Prix</TD>";
                        LB_affichage.Text += "<TD class=ms-rteTableOddCol-6><SPAN>" + dr["Prix"].ToString() + "</SPAN></TD></TR>";
     
                        LB_affichage.Text += "<TR class=ms-rteTableEvenRow-6>";
                        LB_affichage.Text += "<TD class=ms-rteTableEvenCol-6>Pocesseur</TD>";
                        LB_affichage.Text += "<TD class=ms-rteTableOddCol-6><BR>" + dr["Possesseur"].ToString() + "</TD></TR>";
     
                        LB_affichage.Text += "<TR class=ms-rteTableOddRow-6>";
                        LB_affichage.Text += "<TD class=ms-rteTableEvenCol-6>Avis sur le vendeur</TD>";
                        LB_affichage.Text += "<TD class=ms-rteTableOddCol-6>" + dr["Avis"].ToString() + "</SPAN></TD></TR>";
     
                        LB_affichage.Text += "</DIV>";
                    }
                    sqlConn.Close();
                }
                catch (Exception eMsg1)
                {
                    //En cas d’erreur on affiche le message d’erreur
                    LB_affichage.Text = "Erreur durant l’execution de la requete : " + eMsg1.Message;
                }
            }
        }
    }
    Et ça me donne sa :



    On est d'accord c'est bidon au niveau des données et du graphique mais c'est juste pour essayer. Mon image rend "System.Byte[]". Il faut que je cast sa ?
    Images attachées Images attachées  

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 190
    Par défaut
    ben tes images sont stocker en quoi? jpg? bmp?
    D'apres le lien tu dois convertir le image SQL en Bitmap cf point 8

    De plus affichier un images dans un label?

  8. #8
    Membre éclairé Avatar de kratoce
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2012
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2012
    Messages : 270
    Par défaut
    Mdr oui c'est très con

    C'est au format png.

    Edit : Je bloque au niveau de sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    byte[] data = (byte[])ds.Tables[0].Rows[0][0];
    Il me renvoie cette erreur :
    Erreur durant l’execution de la requete : Impossible de trouver la table 0
    La table 0 ?

  9. #9
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Ton ton cas on dirait que ce serait plutôt :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sqlSet.Tables["Table_1"].Rows[0][0];

  10. #10
    Membre éclairé Avatar de kratoce
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2012
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2012
    Messages : 270
    Par défaut
    Citation Envoyé par GuruuMeditation Voir le message
    Ton ton cas on dirait que ce serait plutôt :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sqlSet.Tables["Table_1"].Rows[0][0];
    Merci de ton aide.

    Il n'aime pas du tout cette ligne

    Erreur suivante :

    Seuls une assignation, un appel, un incrément, un décrément et des expressions d'objet new peuvent être utilisés comme instruction
    J'ai cherché pas mal sur le net et il y a plein de forum ou les personnes demandent, mais ou le problème n'est pas résolu. C'est que c'est si compliqué? Je pensais que se serait quelque chose de courant

  11. #11
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Oups, j'ai oublié une partie de la ligne. Essaye avec :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    byte[] data = (byte[])sqlSet.Tables["Table_1"].Rows[0][0];

  12. #12
    Membre éclairé Avatar de kratoce
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2012
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2012
    Messages : 270
    Par défaut
    Erreur suivante :
    Erreur durant l’execution de la requete : Aucune ligne à la position 0.


  13. #13
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Bizarre..Il n'y a aucune ligne dans la DB???

  14. #14
    Membre éclairé Avatar de kratoce
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2012
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2012
    Messages : 270
    Par défaut
    Citation Envoyé par GuruuMeditation Voir le message
    Bizarre..Il n'y a aucune ligne dans la DB???
    La DB ?
    Pardon mais je débute depuis peut, j'ai pas encore tout le jargon en tête

  15. #15
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 190
    Par défaut
    Citation Envoyé par kratoce Voir le message
    La DB ?
    Pardon mais je débute depuis peut, j'ai pas encore tout le jargon en tête
    Data Base, Base de données

  16. #16
    Membre éclairé Avatar de kratoce
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2012
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2012
    Messages : 270
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    Data Base, Base de données
    Merci

    Citation Envoyé par GuruuMeditation Voir le message
    Bizarre..Il n'y a aucune ligne dans la DB???
    Si justement j'ai créer une donnée :


  17. #17
    Membre éclairé Avatar de kratoce
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2012
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2012
    Messages : 270
    Par défaut
    Je comprend ... J'ai ma requête Where qui n'est pas bonne... Pour ça que sa ne fonctionne pas

    Mais... Toujours une erreur
    Erreur durant l’execution de la requete : Impossible d'effectuer un cast d'un objet de type 'System.Int32' en type 'System.Byte[]'.

    Voici tout mon code, j'ai surement fait une bétise, j'ai repris le code du lien bêtement et je sais pas trop ce qui merde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    using System;
    using System.Web.UI;
    using System.Data.SqlClient;
    using System.Data;
    using Microsoft.SharePoint;
    using System.IO;
    using System.Windows.Media.Imaging;
     
    namespace VisualWebPartProject2.VisualWebPart1
    {
        public partial class VisualWebPart1UserControl : UserControl
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                SPWeb web = SPContext.Current.Web;
                {
                    try
                    {
                        SqlConnection sqlConn = new SqlConnection("Data Source=APPRENTI_INFO\\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=test;initial catalog=test;user id=admin;password=montoya2001;Connect Timeout=10");
                        SqlDataAdapter sqlAdapt = new SqlDataAdapter(@"SELECT * FROM Table_1 ", sqlConn); 
                        SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(sqlAdapt);
                        DataSet sqlSet = new DataSet();
                        sqlAdapt.Fill(sqlSet, "Table_1");
     
     
                        byte[] data = (byte[])sqlSet.Tables["Table_1"].Rows[0][0];
                        MemoryStream strm = new MemoryStream();
                        strm.Write(data, 0, data.Length);
                        strm.Position = 0;
                        System.Drawing.Image img = System.Drawing.Image.FromStream(strm);
                        BitmapImage bi = new BitmapImage();
                        bi.BeginInit();
                        MemoryStream ms = new MemoryStream();
                        img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
                        ms.Seek(0, SeekOrigin.Begin);
                        bi.StreamSource = ms;
                        bi.EndInit();
                    }
                    catch (Exception eMsg1)
                    {
                        //En cas d’erreur on affiche le message d’erreur
                        LB_affichage.Text = "Erreur durant l’execution de la requete : " + eMsg1.Message;
                    }
                }
            }
        }
    }

Discussions similaires

  1. [MySQL] Afficher le résultat d'une requete variable (SQL) via PHP
    Par Kaluvn dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/03/2011, 18h02
  2. Afficher image sur une page html via c
    Par Relyss dans le forum Réseau
    Réponses: 3
    Dernier message: 17/12/2009, 11h40
  3. AU SECOURS XML AFFICHER IMAGES VIA UN NUMERO ASP
    Par rebecca007 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 14/04/2009, 15h46
  4. Réponses: 0
    Dernier message: 25/08/2008, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo