sql >> データベース >  >> RDS >> Mysql

画像をデータベースBLOBに保存します。 dbからPictureboxに取得

    助けが得られなかったので、私は問題を打ちのめし、ついにそれを機能させました。これが私の作業コードです。

    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
        mstream.Close()
    
        sql = "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
    

    MySQLdbからPictureboxに戻る

       Dim adapter As New MySqlDataAdapter
        adapter.SelectCommand = Cmd
    
        data = New DataTable
    
        adapter = New MySqlDataAdapter("select picture from [yourtable]", conn)
    

    ノート!!画像ボックスに入れることができる画像は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()
    


    1. SQL IDシーケンスが同期しなくなるのはなぜですか(特にPostgresを使用)?

    2. Hibernateの列挙型、列挙型として永続化

    3. MySqlで同じ列値を持つ行を返す方法

    4. PL /Java1.5.2をPostgreSQL11にインストールします