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
Pour relire
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(); }
L'erreur que j'obtiens :
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; }Dans ma DB Access l'objet est de type "Objet OLE".Impossible d'effectuer un cast d'un objet de type 'System.Byte[]' en type 'Applic2009.Objet'.
Ou ais-je faux ?
Merci de votre aide![]()
Partager