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 :

insérer un fichier image dans une base de données sqlserver et le lire après


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 337
    Points : 120
    Points
    120
    Par défaut insérer un fichier image dans une base de données sqlserver et le lire après
    Bonjour
    Je developpe en vb.net avec une base de données sqlserver.
    J'avais pour habitude de sauvegarder le chemin des images dans ma base de données et les afficher en appelant le chemin.
    Je veux changer cette methode et sauvegarder directement mon image dans la BD et l'y extraire directement.
    Je developpe en vb 2012 avec un BD sqlserver 2012.
    J'ai créer un champ "PhotoIdentité" de type "Image"

    Montrer moi un bout de code pour enregistrer et un autre pour afficher.
    Je tiens à préciser que je suis fatigué de chercher.

    Merci d'avance

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    question posée et répondue des centaines de fois sur ce forum, et surement des milliers de fois via google

    le type image est obsolete, il vaut mieux utiliser un varbinary

    Citation Envoyé par djelloharmel Voir le message
    Montrer moi un bout de code pour enregistrer et un autre pour afficher.
    nous ne sommes pas à tes ordres

    Citation Envoyé par djelloharmel Voir le message
    Je tiens à préciser que je suis fatigué de chercher.
    je tiens à préciser qu'on en a marre des gens comme toi, tu peux te désinscrire de ce forum et arrêter le développement, tu n'arriveras à rien comme ça
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 337
    Points : 120
    Points
    120
    Par défaut
    Dans la table "p_personnel", il existe les champs "matricule" de type nvarchar(15) et "photoidentite" de type varbinary(max)
    la variable "CheminImage" de type String est le chemin de la photo à insérer dans la base de données
    Ici, on considère que les enregistrements dans la table p_personnel existe déjà et qu'il faut juste ajouter les images à chaque enregistement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub ValiderImage(ByVal CheminImage As String,ByVal vMatricule As String)
            Dim cmd As New SqlCommand("update p_personnel set photoidentite=@BLOBData where (matricule='" & vMatricule & "')", sqlCONN)
            Dim strBLOBFilePath As String = CheminImage
            Dim fsBLOBFile As New FileStream(strBLOBFilePath, FileMode.Open, FileAccess.Read)
            Dim bytBLOBData(fsBLOBFile.Length() - 1) As Byte
            fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length)
            fsBLOBFile.Close()
            Dim prm As New SqlParameter("@BLOBData", SqlDbType.VarBinary, bytBLOBData.Length, ParameterDirection.Input, False, 0, 0, Nothing, DataRowVersion.Current, bytBLOBData)
            cmd.Parameters.Add(prm)
            sqlCONN.Open()
            cmd.ExecuteNonQuery()
            sqlCONN.Close()
        End Sub
    Pour insérer les données (plûtot que de les mettre à jour), remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim cmd As New SqlCommand("update p_personnel set photoidentite=@BLOBData where (matricule='" & vMatricule & "')", sqlCONN)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim cmd As New SqlCommand("insert into p_personnel (matricule,photoidentite) values ('" & vMatricule & "',@BLOBData)", sqlCONN)
    Pour lire les données, faîtes le code suivant
    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
    Private Sub AfficherImage(ByVal vMatricule As String)
            ExecuteLMDTiers("SELECT photoidentite FROM p_personnel where (matricule='" & vMatricule & "')", "p_personnel")
     
            If IsDBNull(bTabTiers.Rows(0).Item(0)) Then ' pour ne pas afficher les enregistrements qui n'ont pas de photo
                PictureBox1.Visible = False
                Exit Sub
            End If
     
            Dim cmd As New SqlCommand("SELECT photoidentite FROM p_personnel where (matricule='" & vMatricule & "')", sqlCONN)
            Dim da As New SqlDataAdapter(cmd)
            Dim ds As New DataSet()
            da.Fill(ds, "p_personnel")
            Dim c As Integer = ds.Tables("p_personnel").Rows.Count
     
            If c > 0 Then
                Dim bytBLOBData() As Byte = ds.Tables("p_personnel").Rows(c - 1)("photoidentite")
                Dim stmBLOBData As New MemoryStream(bytBLOBData)
                PictureBox1.Image = Image.FromStream(stmBLOBData)
            End If
    Ces codes marchent à coup sûr.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/05/2013, 11h39
  2. [MySQL] Insérer le contenu d'un fichier Excel dans une base de donnée Mysql
    Par ghir_ana dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/07/2011, 15h46
  3. Importer un fichier pdf dans une base de donnée sqlserver
    Par kadiato dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/03/2009, 14h00
  4. Réponses: 5
    Dernier message: 11/03/2009, 21h46
  5. intégrer un fichier image dans une base de donnée?
    Par Lody dans le forum Requêtes
    Réponses: 9
    Dernier message: 16/03/2006, 19h08

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