IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

[C#] Objet dans une DB Access


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 3
    Par défaut [C#] Objet dans une DB Access
    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

  2. #2
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Salut,

    quel est le type de Objet ?

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 3
    Par défaut
    C'est une classe que j'ai créé, la je l'ai renommé ici pour que ce soit plus simple. (ça l'est peut-être pas ^^)

    C'est donc une classe banale avec 2-3 propriétés,...

  4. #4
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    voui, alors si Objet est un type complexe, il va falloir le stocker autrement, parce que la, il va essayer de te faire des conversion d'un cote a l'autre, et ca ne vas pas fonctionner...

    Tu pourrais eventuellement serialiser ton objet, le sdauver sous forme serialisee et le deserialiser quand tu le recuperes, mais autant avoir une table objet dans laquelle tu stockes tes objets (et c'est plus propre coté sql, en plus )

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 3
    Par défaut
    OK merci de ta réponse, ca m'éclaire un peu.

    Peux-tu m'en dire un peu plus ou m'indiquer une doc sur la séralisation ?

    Pour la table d'objet, je ne vois pas l'intéret, je retrouverais le même problème non ?

  6. #6
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    en fait, pour le moment, tu as une table qui ressemble a ca:

    Table
    Id, Nom, Adresse, Description, Objet

    Lídee, ce serait de prendre les champs que tu dois trouver dans ton Objet, et de les deporter dans une seconde table, (on va dire poids et taille, meme si c'est pas ca...) TableObjet, comme ca:

    TableObjet
    Id, Poids, Taille

    et modifier ta Table comme ca:
    Table
    Id, Nom, Adresse, Description, ObjetId

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/05/2015, 12h17
  2. Récupérer les mails Outlook dans une table Access
    Par zerrokooll dans le forum VBA Access
    Réponses: 79
    Dernier message: 07/07/2009, 14h22
  3. Réponses: 2
    Dernier message: 08/03/2007, 10h50
  4. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 16h57
  5. bug dans une base Access
    Par bizouard dans le forum Access
    Réponses: 5
    Dernier message: 29/12/2003, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo