IOException beim Auslesen eines Bild aus einer DB

JK_net

Erfahrenes Mitglied
Hallo!

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
 

Neue Beiträge

Zurück