sql >> Databasteknik >  >> RDS >> Mysql

VB.net - infoga/hämta bild från mysql-databasen direkt till/från en bildlåda

Tja, eftersom jag inte fick någon hjälp slog jag bort problemet och fick det att fungera äntligen. Här är min arbetskod.

SPARA TILL MySQL från Picturebox (pbPicture)

    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

LADDA från MySQL db Tillbaka till Picturebox

   Dim adapter As New MySqlDataAdapter
    adapter.SelectCommand = Cmd

    data = New DataTable

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

NOTERA!! kan bara lägga en bild i bildrutan så uppenbarligen kan denna fråga bara returnera en post åt dig

    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. VÄLJ endast rader som endast innehåller alfanumeriska tecken i MySQL

  2. Null Pointer Undantag vid anrop av getReadableDatabase()

  3. Kan inte använda filterkolumner från materialiserad vylogg på tabell

  4. Kan jag få en MySQL-databas att automatiskt tilldela ett värde till en kolumn efter en insert-sats?