Problème :
Récupération d'images stockées sous forme de BLOB dans une base de données MySQL et les afficher dans une PictureBox ne fonctionne pas correctement.
Solution :
Le problème dans le code fourni réside dans la récupération incorrecte de l'image de la base de données. Les étapes suivantes décrivent une méthode pour récupérer et afficher des images à partir d'une base de données MySQL :
Configuration de la base de données :
Afficher l'image dans PictureBox :
Dans la méthode byteArrayToImage, convertissez le tableau d'octets (ImageByte) en un objet Image :
public Image byteArrayToImage(byte[] byteArrayIn) { using (var ms = new MemoryStream(byteArrayIn)) { return Image.FromStream(ms); } }
Dans la méthode photoLoad, récupérez l'image à l'aide d'une requête paramétrée :
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(); } } // ... }
Considérations supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!