Artikel ini menangani cabaran menyimpan dan mendapatkan semula imej daripada pangkalan data. Kod awal yang diberikan menghadapi masalah, mendorong pemeriksaan yang lebih mendalam dan penyelesaian yang berjaya.
Coretan kod menunjukkan cara menyimpan imej daripada PictureBox (PbPicture) ke Pangkalan data 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
Untuk mendapatkan semula imej daripada pangkalan data dan paparkannya dalam PictureBox (PbPicture), ikut langkah berikut:
Dim adapter As New MySqlDataAdapter adapter.SelectCommand = Cmd data = New DataTable adapter = New MySqlDataAdapter("select picture from [yourtable]", conn)
Nota: Pastikan pertanyaan mengembalikan hanya satu rekod kerana hanya satu PictureBox boleh memaparkan imej tunggal pada satu masa.
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()
Atas ialah kandungan terperinci Bagaimana untuk Menyimpan dan Mengambil Imej dengan Cekap dalam Pangkalan Data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!