Hallo!
Ich lese folgendermaßen eine Bild aus einer MySQL-Datenbank:
Diese Methode wird aufgerufen, wenn ich in einer ComboBox (cboUser) einen Benutzer auswähle.
Wenn ich nun einen Benutzer auswähle, wird das Bild angezeigt, wenn ich allerdings denselben Benutzer ein weiteres Mal auswähle, erhalte ich folgende Exception:
"The process cannot access the file "C:\test.png" because it is being used by another process."
Kann mir jemand weiterhelfen, und verraten an welcher Stelle der Fehler ist?
Vielen Dank schonmal im Voraus!
MfG
Jens
Ich lese folgendermaßen eine Bild aus einer MySQL-Datenbank:
Code:
private void getUserIcon()
{
if (db_error == false)
{
MySqlConnection myConnIcon;
#if DEBUG
myConnIcon = new MySqlConnection("server=127.0.0.1;user id=root;password=");
#else
myConnIcon = new MySqlConnection("server=192.168.0.13;user id=root;password=");
#endif
myConnIcon.Open();
MySqlDataReader reader = null;
MySqlCommand mySqlCommand = new MySqlCommand("SELECT Icon FROM
mysql.user_info WHERE User = '" + this.cboUser.Text + "'", myConnIcon);
try
{
FileStream fs;
BinaryWriter bw;
int bufferSize = 100;
byte[] outbyte = newbyte;
long retval;
long startIndex = 0;
reader = mySqlCommand.ExecuteReader();
reader.Read();
fs = new FileStream(this.cboUser.Text + ".png", FileMode.OpenOrCreate, FileAccess.Write);
bw = new BinaryWriter(fs);
startIndex = 0;
retval = reader.GetBytes(0, startIndex, outbyte, 0, bufferSize);
while (retval == bufferSize)
{
bw.Write(outbyte);
bw.Flush();
startIndex += bufferSize;
retval = reader.GetBytes(0, startIndex, outbyte, 0, bufferSize);
}
bw.Write(outbyte, 0, (int)retval - 1);
bw.Flush();
bw.Close();
fs.Close();
this.picUserIcon.Image = Image.FromFile(this.cboUser.Text + ".png");
}
catch(MySqlException ex)
{
MessageBox.Show("Failed to populate table list: " + ex.Message );
}
finally
{
if (reader != null) reader.Close();
myConnIcon.Close();
}
}
}
Diese Methode wird aufgerufen, wenn ich in einer ComboBox (cboUser) einen Benutzer auswähle.
Wenn ich nun einen Benutzer auswähle, wird das Bild angezeigt, wenn ich allerdings denselben Benutzer ein weiteres Mal auswähle, erhalte ich folgende Exception:
"The process cannot access the file "C:\test.png" because it is being used by another process."
Kann mir jemand weiterhelfen, und verraten an welcher Stelle der Fehler ist?
Vielen Dank schonmal im Voraus!
MfG
Jens