sql >> Databasteknik >  >> RDS >> Mysql

Jag vill ladda en bild från databasen till en bildruta med hjälp av LoadAsync och en MemoryStream

Ladda inte byten i bilden, det kommer att motverka syftet med det du försöker uppnå... (observera att det här är en snabb-n-smutsig för att få bilden till en temporär fil... det finns en många ytterligare överväganden här, inte minst av dem skulle vara att ta bort den temporära filen när du är klar)

byte[] byteBLOBData = (byte[])ds.Tables["magazine_images"].Rows[c - 1]["image"];
string tempImageFileName = Path.Combine(Path.GetTempPath(), Path.GetTempFileName() + ".jpg");
using( FileStream fileStream = new FileStream(tempImageFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite) ) {
    using( BinaryWriter writer = new BinaryWriter(fileStream) ) {
        writer.Write(byteBLOBData);
    }
}

pictureBox1.LoadCompleted += LoadCompleted;
pictureBox1.WaitOnLoad = false;
pictureBox1.LoadAsync(tempImageFileName);

...

private static void LoadCompleted( object sender, AsyncCompletedEventArgs e ) {
    if( e.Error != null ) {
        // will get this if there's an error loading the file
    } if( e.Cancelled ) {
        // would get this if you have code that calls pictureBox1.CancelAsync()
    } else {
        // picture was loaded successfully
    }
}

se även LoadProgressChanged händelse




  1. Indexeras primärnyckeln automatiskt i MySQL?

  2. Ring upp flera lagrade procedurer med Zend Framework

  3. Hur man konverterar versaler till gemener i MySQL

  4. Vad betyder sammanställning?