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
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();
}
}
Il file sul computer viene creato, in quanto quando riavvio il programma (anche se genera l'eccezione) l'immagine viene visualizzata.
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();
}