Smart Friend Ответов: 1

Как обновить изображения


Call Koneksi()
        Dim Cmd As SqlCommand
        Dim edit As String = "Update tbl_image set [Nama Barang]= @Nama_Barang , Jumlah= @Jumlah , [Stok Barang]=  @Stok_Barang , Gambar = @Gambar where Kode=  @Kode "
        Cmd = New SqlCommand(edit, Conn)
        Cmd.Parameters.AddWithValue("@Kode", TextBox1.Text)
        Cmd.Parameters.AddWithValue("@Nama_Barang", ComboBox1.Text)
        Cmd.Parameters.AddWithValue("@Jumlah", TextBox2.Text)
        Cmd.Parameters.AddWithValue("@Stok_Barang", TextBox3.Text)
        Dim MemoryStream As New MemoryStream
        PictureBox1.Image.Save(MemoryStream, System.Drawing.Imaging.ImageFormat.Bmp)
        Dim Dgambar As Byte() = MemoryStream.GetBuffer
        Dim Images As New SqlParameter("@Gambar", Dgambar)
        Images.Value = Dgambar
        Cmd.Parameters.Add(Images)
        Cmd.ExecuteNonQuery()
        MsgBox("Data Berhasil Di Update", MsgBoxStyle.Information, "Information")
        Call KondisiAwal()


Что я уже пробовал:

I entered this code to insert an image, but if I can't update it

Dim MemoryStream As New MemoryStream
        PictureBox1.Image.Save(MemoryStream, System.Drawing.Imaging.ImageFormat.Bmp)
        Dim Dgambar As Byte() = MemoryStream.GetBuffer
        Dim Images As New SqlParameter("@Gambar", Dgambar)
        Images.Value = Dgambar
        Cmd.Parameters.Add(Images)
        Cmd.ExecuteNonQuery()

Richard MacCutchan

Какие ошибки вы получаете?

Richard Deeming

GetBuffer вернет базовый буфер, который может быть длиннее данных, записанных в поток. Воспользуйся ToArray вместо.

Кроме того, вам нужно будет предоставить гораздо больше подробностей о проблеме, если вы хотите, чтобы кто-то мог вам помочь.

1 Ответов

Рейтинг:
6

Maciej Los

Ну, кажется, ваша проблема заключается в следующем: как преобразовать изображение в байтовый массив и наоборот...

Вы можете использовать эти функции:

'convert image to bytearray
Public Function imgToByteArray(ByVal img As Image) As Byte()
    Using mStream As New MemoryStream()
        img.Save(mStream, img.RawFormat)
        Return mStream.ToArray()
    End Using
End Function
'convert bytearray to image
Public Function byteArrayToImage(ByVal byteArrayIn As Byte()) As Image
    Using mStream As New MemoryStream(byteArrayIn)
        Return Image.FromStream(mStream)
    End Using
End Function

Подробнее на сайте: Преобразование изображения в байтовый массив и байтового массива в изображение c# , VB.Net[^]

Использование:
Dim Dgambar As Byte() = imgToByteArray(PictureBox1.Image)
Dim img As New SqlParameter("@Gambar", Dgambar)
img.Value = Dgambar
Cmd.Parameters.Add(img)
Cmd.ExecuteNonQuery()


Smart Friend

все еще не могу при обновлении

Как преобразовать изображение в строку ?

Maciej Los

Вы не можете преобразовать изображение в строку. Вам нужно преобразовать его в байтовый массив, что я вам уже показал.

Smart Friend

проблема решена и может быть обновлена
'преобразовать изображение в bytearray
ImgToByteArray общественную функцию(как byval img В качестве изображения) Как Байт()
Использование mStream в качестве нового потока памяти()
рис.Сохранить(сайт mstream, системы.Рисование.Изображений.ImageFormat.Jpeg)
Верните mStream.Метод toArray()
Конец Использования
Конечная Функция
Благодарю вас, сэр.

Maciej Los

Всегда пожалуйста.