Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

Patricia Arquette
Freigeben: 2024-10-28 17:55:02
Original
463 Leute haben es durchsucht

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);
          }
      }
      Nach dem Login kopieren
    • 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();
              }
          }
          // ...
      }
      Nach dem Login kopieren
  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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!