Maison > base de données > tutoriel mysql > Comment stocker et récupérer efficacement des images dans une base de données MySQL ?

Comment stocker et récupérer efficacement des images dans une base de données MySQL ?

Patricia Arquette
Libérer: 2024-11-29 18:15:11
original
231 Les gens l'ont consulté

How to Efficiently Store and Retrieve Images in a MySQL Database?

Stockage et récupération d'images dans une base de données

Introduction

Cet article aborde le défi du stockage et de la récupération d'images à partir d'une base de données. Le code initial fournissait des problèmes rencontrés, ce qui a conduit à un examen plus approfondi et à une résolution réussie.

Enregistrement des images dans la base de données

L'extrait de code montre comment enregistrer une image d'une PictureBox (PbPicture) vers un Base de données MySQL :

    Dim filename As String = txtName.Text + ".jpg"
    Dim FileSize As UInt32

    conn.Close()

    Dim mstream As New System.IO.MemoryStream()
    PbPicture.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
    Dim arrImage() As Byte = mstream.GetBuffer()

    FileSize = mstream.Length
    Dim sqlcmd As New MySqlCommand
    Dim sql As String = "insert into [your table]  (picture, filename, filesize) " & _
                           "VALUES(@File, @FileName, @FileSize)"

    Try
        conn.Open()
        With sqlcmd
            .CommandText = sql
            .Connection = conn
            .Parameters.AddWithValue("@FileName", filename)
            .Parameters.AddWithValue("@FileSize", FileSize)
            .Parameters.AddWithValue("@File", arrImage)

            .ExecuteNonQuery()
        End With
    Catch ex As Exception
        MsgBox(ex.Message)
    Finally
        conn.Close()
    End Try
Copier après la connexion

Récupération d'images de la base de données

Pour récupérer une image de la base de données et l'afficher dans une PictureBox (PbPicture), suivez ces étapes :

    Dim adapter As New MySqlDataAdapter
    adapter.SelectCommand = Cmd

    data = New DataTable

    adapter = New MySqlDataAdapter("select picture from [yourtable]", conn)
Copier après la connexion

Remarque : Assurez-vous que la requête ne renvoie qu'un seul enregistrement, car une seule PictureBox peut afficher une seule image à la fois.

    commandbuild = New MySqlCommandBuilder(adapter)
    adapter.Fill(data)

    Dim lb() As Byte = data.Rows(0).Item("picture")
    Dim lstr As New System.IO.MemoryStream(lb)
    PbPicture.Image = Image.FromStream(lstr)
    PbPicture.SizeMode = PictureBoxSizeMode.StretchImage
    lstr.Close()
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal