>데이터 베이스 >MySQL 튜토리얼 >MySQL 데이터베이스에서 이미지를 효율적으로 저장하고 검색하는 방법은 무엇입니까?

MySQL 데이터베이스에서 이미지를 효율적으로 저장하고 검색하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-29 18:15:11317검색

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

데이터베이스에 이미지 저장 및 검색

소개

이 기사에서는 데이터베이스에서 이미지를 저장하고 검색하는 문제를 다룹니다. 제공된 초기 코드에 문제가 발생하여 더 깊이 조사하고 성공적으로 해결했습니다.

데이터베이스에 이미지 저장

코드 조각은 PictureBox(PbPicture)의 이미지를 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

데이터베이스에서 이미지 검색

이미지를 검색하려면 데이터베이스에서 가져와 PictureBox(PbPicture)에 표시하려면 다음 단계를 따르세요.

    Dim adapter As New MySqlDataAdapter
    adapter.SelectCommand = Cmd

    data = New DataTable

    adapter = New MySqlDataAdapter("select picture from [yourtable]", conn)

참고: 하나의 PictureBox만 단일 이미지를 표시할 수 있으므로 쿼리가 하나의 레코드만 반환하는지 확인하세요. 한 번에.

    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()

위 내용은 MySQL 데이터베이스에서 이미지를 효율적으로 저장하고 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.