Problem:
Als BLOBs gespeicherte Bilder abrufen in einer MySQL-Datenbank und deren Anzeige in einer PictureBox funktioniert nicht korrekt.
Lösung:
Das Problem im bereitgestellten Code liegt im falschen Abruf des Bildes von die Datenbank. Die folgenden Schritte beschreiben eine Methode zum Abrufen und Anzeigen von Bildern aus einer MySQL-Datenbank:
Datenbank-Setup:
Bild in PictureBox anzeigen:
Konvertieren Sie in der byteArrayToImage-Methode das Byte-Array (ImageByte) in ein Bildobjekt:
public Image byteArrayToImage(byte[] byteArrayIn) { using (var ms = new MemoryStream(byteArrayIn)) { return Image.FromStream(ms); } }
Rufen Sie in der photoLoad-Methode das Bild mithilfe einer parametrisierten Abfrage ab:
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(); } } // ... }
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWie zeige ich ein als BLOB in MySQL gespeichertes Bild in einer PictureBox an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!