Bonjour,
J'ai une base de données mdf avec un champ Photo de type image, la base de données est rempli de données et correcte.
Donc j'ai un DataSet dans mon Data Source windows avec tous mes tables le champ Photo est bien configuré pour PictureBox je choisi Details comme modèle et je déplace cette table sur ma fiche. La propriété DataBinding Image est bien configuré sur le champ Photo de la table.
J'ajoute un gestionnaire OnClick du PictureBox pour pouvoir charger une image dans le PictureBox qui fonctionne bien car l'image se met à jour dans le picturebox.
À l'exécution:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 private void photoPictureBox_Click(object sender, EventArgs e) { Stream myStream = null; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = "J:\\MyPictures"; openFileDialog1.Filter = "*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*"; openFileDialog1.FilterIndex = 2; openFileDialog1.RestoreDirectory = true; if (openFileDialog1.ShowDialog() == DialogResult.OK) { try { if ((myStream = openFileDialog1.OpenFile()) != null) { using (myStream) { photoPictureBox.ImageLocation = openFileDialog1.FileName; photoPictureBox.Load(); casinosBindingSource.EndEdit(); } } } catch (Exception ex) { MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); } } } }
Le problème c'est que lorsque que je me déplace dans la base et que je reviens sur l'enregistrement précédemment modifié je reviens à l'image orginale et ce uniquement pour le champ PictureBox alors que tous les autres champs si ils ont été modifiés sont corrects. C'est BindingSource.EndEdit Method qui devrait faire le travail je crois.
Il faut aussi que quand je clique sur BindingNavigatorSaveItem_Click que le tout soit transféré dans la base de données je me souviens que je devais serialiser l'image du PictureBox en byte.
Je suis en C# avec VS2010.
Quelqu'un connait-il bien le sujet ?
Partager