Bonjour,

Je fais un petit programme qui utilise une DB Access et j'aimerais y enregistrer des objets d'une classe que j'ai fait.

Alors je m'y prend comme ceci :

Pour enregistrer dans ma DB
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
public static void Ajouter(MonObjet O)
        {
            OleDbCommand aCommand = new OleDbCommand("INSERT INTO Table (Id, Nom, Adresse, Description, Objet) VALUES ('" + O.Id + "','" + O.Nom + "','" + O.Adresse + "','" + O.Description + "', '" + O.Objet + "');", Program.aConnection);
            OleDbDataReader aReader = aCommand.ExecuteReader();
        }
Pour relire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public static List<MonObjet> ChargerMonObjet()
        {
            List<MonObjet> l = new List<MonObjet>();
            OleDbCommand aCommand = new OleDbCommand("select Id, Nom, Adresse, Objet, Description from Table", Program.aConnection);
            OleDbDataReader aReader = aCommand.ExecuteReader();
 
            while (aReader.Read())
            {
                MonObjet o = new MonObjet(aReader.GetInt32(0),aReader.GetString(1), aReader.GetString(2), (Objet)aReader.GetValue(3), aReader.GetString(4));
                l.Add(o);
            }
            return l;
        }
L'erreur que j'obtiens :
Impossible d'effectuer un cast d'un objet de type 'System.Byte[]' en type 'Applic2009.Objet'.
Dans ma DB Access l'objet est de type "Objet OLE".

Ou ais-je faux ?

Merci de votre aide