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

VB.NET Discussion :

Selection d'une image a partir du SQL


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 267
    Points : 212
    Points
    212
    Par défaut Selection d'une image a partir du SQL
    Svp j'ai essayé d' afficher l'image avec la requete si dessous et l'afficher dans picturebox1 mais le probleme vous pouvez le voir ci dessous.Aider moi SVP.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    connexion.con.Open()
     
            Dim cmd2 As SqlCommand
            cmd2 = New SqlCommand("select image_data from [BaseERP].[dbo].[PERSONNEL] where nom='OUSSS'", connexion.con)
            Dim imageData As Byte() = DirectCast(cmd2.ExecuteScalar(), Byte())
            If Not imageData Is Nothing Then
                Using ms As New MemoryStream(imageData, 0, imageData.Length)
                    ms.Write(imageData, 0, imageData.Length)
                    Progression.picturebox1.BackgroundImage = Image.FromStream(ms, True)
                End Using
            End If
     
            connexion.con.Close()
    [IMG][/IMG]
    http://upload-pics.org/images/54286065242416492403.jpg

    et voici ci dessous ma base SQL

    [IMG][/IMG]

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Désolé on ne voit plus l'image.

    Par contre qu'elle base de données utilises tu ?
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 267
    Points : 212
    Points
    212
    Par défaut
    Citation Envoyé par infosam76 Voir le message
    Désolé on ne voit plus l'image.

    Par contre qu'elle base de données utilises tu ?
    Je crois que vous pouvez voir l'image et ma base SQL.
    Merci d'avance.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Enlève cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ms.Write(imageData, 0, imageData.Length)
    Ca sert à rien (tu as déjà initialisé le MemoryStream avec les données de imageData), et ça place le curseur à la fin du Stream, alors qu'il faudrait se placer au début pour lire l'image

  5. #5
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Je crois que vous pouvez voir l'image et ma base SQL.
    Merci d'avance.
    Désolé début de l'aprem je ne les voyais pas.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Points : 89
    Points
    89
    Par défaut
    quel bd utilise-tu?
    est ce que tu as un champ qui prend le chemin de l'image?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Dim fs As New FileStream(txtimg.Text, FileMode.OpenOrCreate, FileAccess.Read)
            Dim MyData(fs.Length) As Byte
            fs.Read(MyData, 0, fs.Length)
            fs.Close()
           Me.PictureBox1.ImageLocation = txtimg.Text

  7. #7
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Citation Envoyé par eddyphan Voir le message
    quel bd utilise-tu?
    est ce que tu as un champ qui prend le chemin de l'image?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Dim fs As New FileStream(txtimg.Text, FileMode.OpenOrCreate, FileAccess.Read)
            Dim MyData(fs.Length) As Byte
            fs.Read(MyData, 0, fs.Length)
            fs.Close()
           Me.PictureBox1.ImageLocation = txtimg.Text
    Non ce n'est pas un chemin vu que le type d'image_data est bien "image". Je pense que TomLev à raison j'attends la réponse d'oami89
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  8. #8
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 267
    Points : 212
    Points
    212
    Par défaut
    Voici ci dessous le debut du resultat de la requete SQL

    "0xFFD8FFE000104A46494600010201000000000000FFE1003E4578696600004D4D002A00000008000187690004000000010000001A000000000001928600070000000A0000002C00000000554E49434F444500002AFFFE00042A00FFE2021C4943435F..."

    Et j'ai supprimé la ligne comme il m'a demandé tomlev "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ms.Write(imageData, 0, imageData.Length)
    "
    et c'est le meme problème.
    Merci d'avance de m'aider.

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 267
    Points : 212
    Points
    212
    Par défaut
    Citation Envoyé par infosam76 Voir le message
    Non ce n'est pas un chemin vu que le type d'image_data est bien "image". Je pense que TomLev à raison j'attends la réponse d'oami89
    Le même problème

  10. #10
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Peux tu nous donner le type de ta base de données ? J'aurais tendance à penser à ACCESS
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  11. #11
    Membre éclairé
    Homme Profil pro
    Technicien bio médical
    Inscrit en
    Décembre 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien bio médical
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2012
    Messages : 328
    Points : 768
    Points
    768
    Par défaut
    Bonjour,

    A voir le screenshot du premier message, il semble que ce soit une base SQL Server.

    Le champ image d'une base de données SQL server est apparement appelé à disparaitre si j'en crois un post trouvé à ce sujet sur MSDN.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.PictureBox1.ImageLocation = txtimg.Text
    définit l'URL ou le chemin d'accès au fichier image.
    Ce n'est donc pas la bonne propriété qui est renseignée.

    Les données du champ Image sont en fait un tableau de Bytes, du coup, il faudrait recréer l'image avant de définir PictureBox.Image

    Le fait de stocker des images dans une base de données la fait grossir rapidement, il vaut peut être mieux privilégier le fait de ne stocker que l'URL de l'image, de créer un dossier spécifique pour les mettre et d'y accéder directement sur le disque...
    est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et

  12. #12
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 267
    Points : 212
    Points
    212
    Par défaut
    Citation Envoyé par Rainui Voir le message
    Bonjour,

    A voir le screenshot du premier message, il semble que ce soit une base SQL Server.

    Le champ image d'une base de données SQL server est apparement appelé à disparaitre si j'en crois un post trouvé à ce sujet sur MSDN.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.PictureBox1.ImageLocation = txtimg.Text
    définit l'URL ou le chemin d'accès au fichier image.
    Ce n'est donc pas la bonne propriété qui est renseignée.

    Les données du champ Image sont en fait un tableau de Bytes, du coup, il faudrait recréer l'image avant de définir PictureBox.Image

    Le fait de stocker des images dans une base de données la fait grossir rapidement, il vaut peut être mieux privilégier le fait de ne stocker que l'URL de l'image, de créer un dossier spécifique pour les mettre et d'y accéder directement sur le disque...
    Je veux enregistré la matrice parce-que j'ai des traitements sur la matrice.

  13. #13
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 267
    Points : 212
    Points
    212
    Par défaut
    Citation Envoyé par oami89 Voir le message
    Je veux enregistré la matrice parce-que j'ai des traitements sur la matrice.
    Svp s'il y a un autre code meme si different aidez moi

  14. #14
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Tu veux enregistrer une matrice de quoi ?

    As-tu suivi la recommandation de Rainui ?
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  15. #15
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Le fait de stocker des images dans une base de données la fait grossir rapidement, il vaut peut être mieux privilégier le fait de ne stocker que l'URL de l'image, de créer un dossier spécifique pour les mettre et d'y accéder directement sur le disque...
    Que ça soit le dossier de la base de donnée ou le dossier des images qui augmente je ne vois pas ce que tu gagnes !

    SQL Server est tout à fait à même de stocker des images ou autres fichiers binaires sans problème de performance si on l'utilise correctement.

    Par contre il te retourne dans une requête un array of Byte qu'il faut convertir en objet image pour l'affichage dans un contrôle (et inversement lorsque l'on veut le modifier l'image dans la base).

    Si tu utilises le databinding pour lié un objet de donnée (datarow, entity, etc) il faut déclarer manuelle le binding dans le code, ajouter la gestion des évènement format et parse du binding afin de réaliser la conversion (Byte <=> Image) à la volée.

  16. #16
    Membre éclairé
    Homme Profil pro
    Technicien bio médical
    Inscrit en
    Décembre 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien bio médical
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2012
    Messages : 328
    Points : 768
    Points
    768
    Par défaut
    Bonjour,

    Voici quelques liens en relation avec le type Image :

    Gestion des données ntext, text et image

    Types ntext, text et image (Transact-SQL)

    SQL Server est tout à fait à même de stocker des images ou autres fichiers binaires sans problème de performance si on l'utilise correctement.
    Je ne dis pas le contraire

    Le fait de stocker des images dans une base de données la fait grossir rapidement, il vaut peut être mieux privilégier le fait de ne stocker que l'URL de l'image, de créer un dossier spécifique pour les mettre et d'y accéder directement sur le disque...
    Je ne sais plus ou j'avais lu que ça pouvait poser problème.
    est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et

  17. #17
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Attention, comme stipulé au tout début du lien fourni par Rainui :
    Citation Envoyé par MSDN
    ntext , text, and image data types will be removed in a future version of Microsoft SQL Server. Avoid using these data types in new development work, and plan to modify applications that currently use them. Use nvarchar(max), varchar(max), and varbinary(max) instead.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  18. #18
    Membre confirmé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Points : 457
    Points
    457
    Par défaut
    Salut peut que ceci peut t'aider
    Indexligne et l'index de la ligne dans le datagidviewer
    S_ImageLogo est le champs de type image dans la DB SQL
    PgImageLogo est un pictureBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Private Sub LoadImageLogo(ByVal IndexLigne As Integer)
     
                If IsDBNull(Datagridview.Rows(indexligne).Cells("S_ImageLogo").Value) = False Then
     
                      'Affiche l'image dans le pictureBox
                      Dim Picturebyte() As Byte = Datagridview.Rows(IndexLigne).Cells("S_ImageLogo").Value
                      Dim StreamPicture As New MemoryStream(Picturebyte)
                      PgImageLogo.Image = Image.FromStream(StreamPicture)
     
                End If
     
          End Sub
    Bien a toi
    La Connaissance est comme la joie elle s'accroît en la partageant!

  19. #19
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Citation Envoyé par Rainui Voir le message
    Le fait de stocker des images dans une base de données la fait grossir rapidement, il vaut peut être mieux privilégier le fait de ne stocker que l'URL de l'image, de créer un dossier spécifique pour les mettre et d'y accéder directement sur le disque...
    Je ne suis pas d'accord sur ce point, voir pourquoi dans ce message, après ce n'est qu'une appréciation personnelle

  20. #20
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Les choses ont un peu évolué depuis le temps où ces posts ont été écrits ! SQL Server propose en effet les technologies Filestream et File Table, qui permettent de stocker les images sur le système de fichiers, tout en ayant la possibilité d'intéragir avec en T-SQL.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. Récupérer une image JPEG à partir d'une vidéo
    Par kurul1 dans le forum C++Builder
    Réponses: 8
    Dernier message: 09/08/2006, 10h51
  2. [VBA-E]Selection d'une ligne a partir d'une certaine colonne
    Par deathsurfer dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/06/2006, 16h36
  3. [Image] Comment créer une image à partir d'un fichier
    Par mereyj dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 01/07/2005, 21h48
  4. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44

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