ホームページ >データベース >mysql チュートリアル >MySQL データベースにイメージを効率的に保存および取得するにはどうすればよいですか?

MySQL データベースにイメージを効率的に保存および取得するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-29 18:15:11309ブラウズ

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)

注: 1 つの PictureBox のみが 1 つの画像を表示できるため、クエリが 1 つのレコードのみを返すようにしてください。

    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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。