Bonjour tout le monde ,

je voudrais faire une mise a jour d'une table Image avec le mode deconecté en c# j'ai un probleme dans le cas de l'image j'ai une valeur null il veut pas inserer l'image que je l'affecte
quand je clique sur le boutton add
il me donne l'erreur suivante :
Impossible d'effectuer un cast d'un objet de type 'System.DBNull' en type 'System.Byte[]'.
a la ligne byte[] b = (byte[])e.Value;
Nom : Capture.PNG
Affichages : 337
Taille : 42,6 Ko

ce que je comprends que l'image toujours ca valeur est null je sais pas pourquoi
Voici le code :

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 string Query;
        SqlDataAdapter dataadapter;
        DataSet dataset = new DataSet();
        OpenFileDialog dialog = new OpenFileDialog();
        BindingSource tblname = new BindingSource();
 
 
        private void la_Load(object sender, EventArgs e)
        {
 
     Query = "select * from Imagee ";
            dataadapter = new SqlDataAdapter(Query, Connexion.cnx);
            dataadapter.Fill(dataset,"Timage");
 
 
 
          textBox1.DataBindings.Add(new Binding("Text", dataset, "Timage.Id"));
 
          Binding b = new Binding("Image", dataset, "Timage.imagee");
 
          b.Format += new ConvertEventHandler(b_Format);
          pictureBox1.DataBindings.Add(b);
 
            dataGridView1.DataMember = "Timage";
            dataGridView1.DataSource = dataset;
 
        }
        private void b_Format(object sender, ConvertEventArgs e)
        {
 
                byte[] b = (byte[])e.Value;
                System.IO.MemoryStream ms = new System.IO.MemoryStream(b);
 
                Bitmap bmp = new Bitmap(ms);
 
                ms.Close();
 
                e.Value = bmp;
 
        }
        private void Browse_Click(object sender, EventArgs e)
        {
 
            dialog.Filter = "JPEG|*.jpg";
            if (dialog.ShowDialog() == DialogResult.OK)
            {
 
                Image image = Image.FromFile(dialog.FileName);
 
                pictureBox1.Image = image;
            }
        }
 
        private void buttonAdd_Click(object sender, EventArgs e)
        {
            this.BindingContext[dataset, "Timage"].AddNew();
 
            //SqlCommandBuilder sql = new SqlCommandBuilder(dataadapter);
            //dataadapter.Update(dataset, "Timage");
 
 
 
        }
Ps : je sais que le mode déconnecté il est préférable de l'utiliser seulement a l'affichage mais mois je me prépare pour un autre projet qui contient plusieurs champs si je le fai en mode connecté c'est beaucoup plus trop