Masalah:
Mengambil semula imej yang disimpan sebagai BLOB dalam pangkalan data MySQL dan memaparkannya dalam PictureBox tidak berfungsi dengan betul.
Penyelesaian:
Isu dalam kod yang disediakan terletak pada pengambilan imej yang salah daripada pangkalan data. Langkah berikut menggariskan kaedah untuk mendapatkan dan memaparkan imej daripada pangkalan data MySQL:
Penyediaan Pangkalan Data:
Paparkan Imej dalam PictureBox:
Dalam kaedah byteArrayToImage, tukar tatasusunan bait (ImageByte) kepada objek Imej:
public Image byteArrayToImage(byte[] byteArrayIn) { using (var ms = new MemoryStream(byteArrayIn)) { return Image.FromStream(ms); } }
Dalam kaedah photoLoad, dapatkan semula imej menggunakan pertanyaan berparameter:
private void photoLoad() { // ... using (var con = new MySqlConnection(connectionString)) { byte[] ImageByte = new byte[0]; string query1 = "select image from reg.img_table where id= @id"; using (var cmd = new MySqlCommand(query1, con)) { cmd.Parameters.AddWithValue("@id", Properties.Settings.Default.idImg); con.Open(); using (var row = cmd.ExecuteReader()) { while (row.Read()) { ImageByte = (byte[])(row["image"]); } } } if (ImageByte != null) { // Convert to an Image object and display in PictureBox roundPictureBox1.Image = byteArrayToImage(ImageByte); roundPictureBox1.Refresh(); } } // ... }
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Imej yang Disimpan sebagai BLOB dalam MySQL dalam PictureBox?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!