Heim  >  Artikel  >  Datenbank  >  Wie zeige ich ein als BLOB in MySQL gespeichertes Bild in einer PictureBox an?

Wie zeige ich ein als BLOB in MySQL gespeichertes Bild in einer PictureBox an?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-28 17:55:02464Durchsuche

How to Display an Image Stored as a BLOB in MySQL in a PictureBox?

So rufen Sie ein Bild aus MySQL ab und zeigen es in einer PictureBox an

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:

  1. Datenbank-Setup:

    • Erstellen Sie eine Tabelle in die MySQL-Datenbank mit einer Spalte zum Speichern der Bilddaten als BLOB-Typ.
  2. 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();
              }
          }
          // ...
      }
  3. Zusätzliche Überlegungen:

    • Stellen Sie sicher, dass das Bild korrekt in der Datenbank gespeichert wird ( Verwenden Sie beispielsweise File.ReadAllBytes, um die Bilddatei zu lesen.
    • Überprüfen Sie, ob das abgerufene Byte-Array (ImageByte) nicht leer ist, bevor Sie versuchen, es in ein Bildobjekt zu konvertieren.
    • Behandeln Sie Ausnahmen entsprechend in der photoLoad-Methode zur Fehlerbehandlung.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn