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

Accès aux données Discussion :

fileupload + sql management 2005


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 64
    Par défaut fileupload + sql management 2005
    Bonjour,
    En fait je veux que mon fileupload stocke une image dans la base de donnés, alors quel type dois-je attribuer à mon champ image et comment le faire stocker dans la BD sous c#.
    Merci pour votre aide.

  2. #2
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    salut,

    pour stocker une image en base, tu as, dans sql server, un type de champ image

    après, il faut que tu récupères le contenu du fichier, et que tu insères ton image dans la base, genre comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int imagelen = Upload.PostedFile.ContentLength;
    byte[] picbyte = new byte[imagelen];
    Upload.PostedFile.InputStream.Read (picbyte, 0, imagelen);
    SqlCommand cmd = new SqlCommand ("INSERT INTO Table "
    + "(Name, ImageContent) VALUES (@imageName, @imageContent)", conn);
    cmd.Parameters.Add ("@imageName", lblImageID.Text);
    cmd.Parameters.Add ("@imageContent", picbyte);
    cmd.ExecuteNonQuery ();
    Et dans l'autre sens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    MemoryStream mstream = new MemoryStream ();
    SqlCommand cmd = new SqlCommand ("SELECT ImageContent FROMTable "
    + " WHERE Name='Toto' ", conn);
    byte[] image = (byte[]) command.ExecuteScalar ();
    mstream.Write (image, 0, image.Length);
    Bitmap bitmap = new Bitmap (stream);
    Response.ContentType = "image/gif";
    bitmap.Save (Response.OutputStream, ImageFormat.Gif);
    mstream.Close();

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 64
    Par défaut
    Merci pour ta réponse, en fait j ai utilisé le code que tu m a fourni et il a stocké l image sous forme <Binary data> que je vois dans la table mais quand je veux afficher la liste des images dans un datalist il me met devant le champ logo le message "System.Byte[]"

  4. #4
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Citation Envoyé par dotnetnuke Voir le message
    Merci pour ta réponse, en fait j ai utilisé le code que tu m a fourni et il a stocké l image sous forme <Binary data> que je vois dans la table mais quand je veux afficher la liste des images dans un datalist il me met devant le champ logo le message "System.Byte[]"
    Normal, ce sont des bytes qui sont stockes dans la base..

    comme je te l'ai mis dans le second snippet, il faut ensuite convertir les bytes stockes en base en une image

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 64
    Par défaut
    En fait j utilise un dataset pour établir la liaison et insérer mes données alors je vais pas utiliser sqlcommand, voici mon code d ajout d une annone qui contiendra une image qui est le logo:
    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
    65
     
        public void Button1_Click(object sender, EventArgs e)
        {
            DataSet1 ds;
            ds = new DataSet1();
     
            DataSet1.OffresEmploiRow r;
            r = ds.OffresEmploi.NewOffresEmploiRow();
     
            DataSet1.RecruteurRow x;
            x = ds.Recruteur.NewRecruteurRow();
     
            r.idrecruteur = x.idrecruteur;
     
            r.datePublication = txt_date.Text;
            r.nomposte = txt_poste.Text;
            r.nomentreprise = txt_annonceur.Text;
            r.lieu = txt_lieu.Text;
     
            //stocker logo du recruteur
     
            int imagelen = FileUpload1.PostedFile.ContentLength;
            byte[] picbyte = new byte[imagelen];
            r.logoRecruteur = picbyte;
            FileUpload1.PostedFile.InputStream.Read(picbyte, 0, imagelen);
           //jsq ici ça marche
     
            //probleme
     
            MemoryStream mstream = new MemoryStream();
            byte[] image = (byte[])command.ExecuteScalar();
            mstream.Write(image, 0, image.Length);
            Bitmap bitmap = new Bitmap(stream);
            Response.ContentType = "image/jpg";
            bitmap.Save(Response.OutputStream, ImageFormat.jpg);
            mstream.Close();
     
     
            r.mailcontact = mail_recruteur.Text;
            r.DescriptionPoste = TextArea1.Value;
            r.DescriptionEntreprise = Textarea2.Value;
            r.ProfilRecherche = Textarea3.Value;
            r.Objectifs = Textarea4.Value;
     
            r.Question1 = txt_ques1.Text;
            r.Question2 = txt_ques2.Text;
            r.Question3 = txt_ques3.Text;
            r.Question4 = txt_ques4.Text;
            r.Question5 = txt_ques5.Text;
            r.Question6 = txt_ques6.Text;
            r.Question7 = txt_ques7.Text;
     
            ds.OffresEmploi.AddOffresEmploiRow(r);
     
            DataSet1TableAdapters.OffresEmploiTableAdapter ta;
            ta = new DataSet1TableAdapters.OffresEmploiTableAdapter();
            ta.Update(ds.OffresEmploi);
     
            Label18.Visible = true;
            Label18.Text = "offre ajoutée avec succès";
     
     
        }
     
    }

Discussions similaires

  1. Test BLOB vide erreur (SQL Manager 2005)
    Par Fred29 dans le forum Outils
    Réponses: 6
    Dernier message: 11/04/2008, 10h19
  2. copier une base de données en sql manager 2005
    Par danouna dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/11/2007, 07h58
  3. SQL Server 2005 Express Manager
    Par Cork dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/10/2007, 14h44
  4. [MS SQL SERVER 2005 MANAGEMENT Studio] Limite d'utilisation..
    Par TEXMEX dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 02/05/2006, 19h27
  5. [SQL server 2005] Incompatibilité CTP et Express Manager
    Par khany dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/11/2005, 08h44

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