stesso errore con .\logo \logo e logo![]()
a questo punto posto un po' più di codice, la prima volta ciò avviene in un costruttore e poi di volta in volta in un metodo
Il file sul computer viene creato, in quanto quando riavvio il programma (anche se genera l'eccezione) l'immagine viene visualizzata.codice:class Azienda { private int id; private String ragioneSociale; private String indirizzo; private String cap; private String citta; private String provincia; private String telefono; private String fax; private String email; private String iva; private Bitmap logo; private int filesize; public Bitmap getLogo() { return this.logo; } public Azienda() { ConnessioneMySql mySql = new ConnessioneMySql(); //ConnessioneMySql è una classe create da me per gestire la connessione al db if (mySql.connetti()) { MySqlDataReader risultati = (MySqlDataReader)mySql.query("SELECT id, ragione_sociale, indirizzo, cap, citta, provincia, telefono, fax, email, pIva, logo, filesize FROM azienda LIMIT 1"); if (risultati.HasRows) { while (risultati.Read()) { ragioneSociale = risultati.GetString("ragione_sociale").ToString(); id = risultati.GetInt32("id"); indirizzo = risultati.GetString("indirizzo").ToString(); cap = risultati.GetInt32("cap").ToString(); citta = risultati.GetString("citta").ToString(); provincia = risultati.GetString("provincia").ToUpper(); telefono = risultati.GetString("telefono").ToString(); fax = risultati.GetString("fax").ToString(); email = risultati.GetString("email").ToString(); iva = risultati.GetString("pIva").ToString(); filesize = risultati.GetInt32("filesize"); byte[] rawData = new byte[filesize]; risultati.GetBytes(risultati.GetOrdinal("logo"), 0, rawData, 0, filesize); try { FileStream fs = new FileStream(@"logo", FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite); fs.Write(rawData, 0, filesize); fs.Flush(); fs.Close(); fs.Dispose(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); //nothing } logo = new Bitmap(@"logo"); } } mySql.disconnetti(); } } public void aggiornaDatiAzienda() { ConnessioneMySql mySql = new ConnessioneMySql(); mySql.connetti(); MySqlDataReader risultati = (MySqlDataReader)mySql.query("SELECT id, ragione_sociale, indirizzo, cap, citta, provincia, telefono, fax, email, pIva, logo, filesize FROM azienda LIMIT 1"); if (risultati.HasRows) { while (risultati.Read()) { ragioneSociale = risultati.GetString("ragione_sociale").ToString(); id = risultati.GetInt32("id"); indirizzo = risultati.GetString("indirizzo").ToString(); cap = risultati.GetInt32("cap").ToString(); citta = risultati.GetString("citta").ToString(); provincia = risultati.GetString("provincia").ToUpper(); telefono = risultati.GetString("telefono").ToString(); fax = risultati.GetString("fax").ToString(); email = risultati.GetString("email").ToString(); iva = risultati.GetString("pIva").ToString(); filesize = risultati.GetInt32("filesize"); byte[] rawData = new byte[filesize]; risultati.GetBytes(risultati.GetOrdinal("logo"), 0, rawData, 0, filesize); try { FileStream fs = new FileStream(@"logo", FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite); fs.Write(rawData, 0, filesize); fs.Flush(); fs.Close(); fs.Dispose(); } catch(Exception ex) { MessageBox.Show(ex.ToString()); //nothing } logo = new Bitmap(@"logo"); } } mySql.disconnetti(); } }
Se invece carico una nuova immagine mentre il programma è avviato il metodo aggiornaDatiAzienda da ancora eccezione ma non carica l'immagine, al riavvio successivo mi trovo l'immagine aggiornata,
edit:
Mi accorgo quando non va in quanto dovrei visualizzare l'immagine aggiornata con questo metodo:
codice:private void frmPrincipale_Load(object sender, EventArgs e) { azienda = new Azienda(); picLogoAzienda.Image = azienda.getLogo(); } private void cmdGenerale_Click(object sender, EventArgs e) { azienda.aggiornaDatiAzienda(); picLogoAzienda.Image = azienda.getLogo(); }

Rispondi quotando