Код, который читает изображение из окна pic в memystream и вставляет его в BLOB MySQL в базе данных, отлично работает. Может извлекаться из базы данных, а отображение в блоке pic отлично работает (не показано). Просто примечание, я не писал этот код, это из учебника в Интернете.VB.NET Update BLOB в MySQL
Бит, который я написал в UPDATE, не работает. Я пробовал много комбинаций скобок, одинарных кавычек, двойных кавычек, но пока не повезло. Я получаю сообщения об ошибках от CATCH, иногда на простом английском языке, ссылаясь на синтаксис, а иногда и на двоичный дамп. Когда я получаю сообщение об успешном обновлении, все, что записано в BLOB, является именем того, что я пытаюсь обновить «VALUES (@image_data)». Я попытался ОБНОВИТЬ как из memystream, так и из файла, но пока не повезло.
Код «rem'd» отлично работает для INSERT, и я могу вручную обновить BLOB, но не практично. BLOB будет обновлен, например, при обновлении SD-DVD до BD-DVD, я изменю небольшой логотип.
Прежде чем я начну пылать, я не знаю хорошей практики хранения изображений, но в этом случае это более практично, я считаю. Изображения - это крошечные логотипы DVD 24x11, которые читаются в таблице datagridview, все мои другие изображения хранятся в виде файлов на сервере (из них 1000), однако тестовый пример просто читает обложку.
Может ли кто-нибудь помочь мне исправить код или предложить лучший метод? Благодаря….
Private Sub btnUpdate_Click(sender As System.Object, e As System.EventArgs) Handles btnUpdate.Click
Dim FileSize As UInt32
'temp for testing
Dim carjackedfront As String = "8f17cd4a-8dd6-4ec1-9e7b-7f4d50460693"
'get picture from database
Dim nvcCover As String = carjackedfront
'Dim original As Image = Image.FromFile("D:\Pics\ae.jpg")
Dim original As Image = Image.FromFile(mediastorageCovers & nvcCover & pictureformat)
Dim mstream As New System.IO.MemoryStream()
' -----this line saves image from picture box
'pic_box_save.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
' -----This line saves image from file into memory stream
original.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim arrImage() As Byte = mstream.GetBuffer()
FileSize = mstream.Length
pic_box_get.Image = Image.FromStream(mstream)
mstream.Close()
MsgBox("File Size = " & FileSize)
Try
sql = "UPDATE image_in_db SET Test = VALUES(@image_Text) WHERE id = '1'"
'sql = "INSERT INTO image_in_db(id, image_data) VALUES(@image_id, @image_data)"
sql_command = New MySqlClient.MySqlCommand(sql, sql_connection)
' sql_command.Parameters.AddWithValue("@image_id", Nothing)
sql_command.Parameters.AddWithValue("@image_data", arrImage)
sql_command.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
MsgBox("Image has been UPDATED.")
End Sub
«Я получаю различные [сообщения об ошибках] от CATCH» - это не полезно. –