Hallo!

Ich lese folgendermaßen eine Bild aus einer MySQL-Datenbank:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
private void getUserIcon() 
[size=2]{
[/size][size=2][color=#0000ff]if[/color][/size][size=2] (db_error == [/size][size=2][color=#0000ff]false[/color][/size][size=2])[/size]
[size=2]{
    MySqlConnection myConnIcon;
[/size][size=2][color=#0000ff]  #if[/color][/size][size=2] DEBUG[/size]
[size=2]     myConnIcon = [/size][size=2][color=#0000ff]new[/color][/size][size=2] MySqlConnection([/size][size=2][color=#ff0000]"server=127.0.0.1;user [/color][/size][size=2][color=#ff0000]id=root;[/color][/size][size=2][color=#ff0000]password="[/color][/size][size=2]);[/size]
[size=2][color=#0000ff] #else
[/color][/size][size=2][color=#808080]   myConnIcon = new MySqlConnection("server=192.168.0.13;user id=root;password=");
[/color][/size][size=2][color=#0000ff]  #endif
[/color][/size][size=2] myConnIcon.Open();
    MySqlDataReader reader = [/size][size=2][color=#0000ff]null[/color][/size][size=2];[/size]
[size=2]    MySqlCommand mySqlCommand = [/size][size=2][color=#0000ff]new[/color][/size][size=2] MySqlCommand([/size][size=2][color=#ff0000]"SELECT Icon FROM[/color][/size]
[size=2][color=#ff0000] mysql.user_info WHERE User = '"[/color][/size][size=2] + [/size][size=2][color=#0000ff]this[/color][/size][size=2].cboUser.Text + [/size][size=2][color=#ff0000]"'"[/color][/size][size=2], myConnIcon);[/size]
[size=2][color=#0000ff] try[/color][/size]
[size=2]    {
     FileStream fs;
     BinaryWriter bw;
[/size][size=2][color=#0000ff][color=#000000]    [/color]int[/color][/size][size=2] bufferSize = 100;[/size]
[size=2][color=#0000ff][color=#000000]   [/color]byte[/color][/size][size=2][] outbyte = [/size][size=2][color=#0000ff]new[/color][/size][size=2][color=#0000ff]byte[/color][/size][size=2][bufferSize];[/size]
[size=2][color=#0000ff][color=#000000]   [/color]long[/color][/size][size=2] retval;[/size]
[size=2][color=#0000ff][color=#000000]   [/color]long[/color][/size][size=2] startIndex = 0;[/size]
[size=2]     reader = mySqlCommand.ExecuteReader();
     reader.Read();
     fs = [/size][size=2][color=#0000ff]new[/color][/size][size=2] FileStream([/size][size=2][color=#0000ff]this[/color][/size][size=2].cboUser.Text + [/size][size=2][color=#ff0000]".png"[/color][/size][size=2], FileMode.OpenOrCreate, [/size][size=2]FileAccess.Write);[/size]
[size=2]     bw = [/size][size=2][color=#0000ff]new[/color][/size][size=2] BinaryWriter(fs);[/size]
[size=2]     startIndex = 0;
     retval = reader.GetBytes(0, startIndex, outbyte, 0, bufferSize);
[/size][size=2][color=#0000ff][color=#000000]    [/color]while[/color][/size][size=2] (retval == bufferSize)[/size]
[size=2]     {
        bw.Write(outbyte);
        bw.Flush();
        startIndex += bufferSize;
        retval = reader.GetBytes(0, startIndex, outbyte, 0, bufferSize);
     }
     bw.Write(outbyte, 0, ([/size][size=2][color=#0000ff]int[/color][/size][size=2])retval - 1);[/size]
[size=2]     bw.Flush();
     bw.Close();
     fs.Close();
[/size][size=2][color=#0000ff][color=#000000]    [/color]this[/color][/size][size=2].picUserIcon.Image = Image.FromFile([/size][size=2][color=#0000ff]this[/color][/size][size=2].cboUser.Text + [/size][size=2][color=#ff0000]".png"[/color][/size][size=2]);[/size]
[size=2]    }
[/size][size=2][color=#0000ff][color=#000000]   [/color]catch[/color][/size][size=2](MySqlException ex) [/size]
[size=2]    {
     MessageBox.Show([/size][size=2][color=#ff0000]"Failed to populate table list: "[/color][/size][size=2] + ex.Message );[/size]
[size=2]    }
[/size][size=2][color=#0000ff][color=#000000]   [/color]finally[/color][/size]
[size=2]    {
[/size][size=2][color=#0000ff][color=#000000]    [/color]if[/color][/size][size=2] (reader != [/size][size=2][color=#0000ff]null[/color][/size][size=2]) reader.Close();[/size]
[size=2]     myConnIcon.Close();
    }
}
}[/size]


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