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

Windows Forms Discussion :

[C#.Net] BDD vers Objet


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 359
    Par défaut [C#.Net] BDD vers Objet
    Bonjour,

    J'aimerai savoir s'il n'y a pas un moyen rapide et "propre" pour importer une table de base de données dans un Objet ?

    Pour le moment, je fais une classe (Chantier par exemple) avec autant de données membres et propriétés qu'il y a de colonne en BDD.
    une méthode SetPersonneById(int id) qui envoie une requête SELECT sur la base et stock le résultat dans un DataSet le temps d'initialiser l'objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Object o;
    o = ds.Tables["Table"].Rows[0]["Colonne"];
    this.MaPropriete = (o is System.DBNull) ? 0 : (Int32)o;
    et ensuite je fais des methodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void InsertChantier()
    public void UpdateChantier()
    ...
    Pour le squelette de la Classe j'utilise Power AMC, mais c'est quand même très long, et ce qui me dérange c'est le nombre de membre (+ 40)

    N'y a t'il pas une solution mieux adapté ?

    Merci

  2. #2
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Si tu veux créer des classes correspondantes à des records dans différentes tables de ta base de donnée, le mieux c'est clairement de passer par un outil de génération qui va te créer pour chaque table, une classe correspondante ainsi que des moyens simples de faire des opérations CRUD.

    Tu as raison de partir comme ça, c'est une excellente façon de bosser, mais ne le fais surtout pas a la mano, c'est trop long et pénible à débugger et à maintenir.

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 359
    Par défaut
    Bonjour,

    Merci pour ton conseil, pour le moment AMC ne peut pas tout générer tout seul, et je ne connais pas d'outil capable de le faire, donc à la mano !

    Par contre, Power AMC me génére des champs que je ne comprend pas depuis le modèle objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        public TypeIncident FkIncidentReferenceTyperecl;
        public Dossier FkIncidentReferenceDossier;
        public LibIncident FkIncidentReferenceLibrecla;
    C'est les clef étrangères de 3 tables, mais pourquoi les déclarer en public et comment s'en servir ?
    Pour le moment, je supprime ça et je créé 3 champs privés à la place...

    Merci

    édit: Qu'est-ce que "CRUD" ?

  4. #4
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Le but c'est sans doute de rapprocher ton modèle relationnel de la réalité grâce aux clefs étrangères.
    Il a déduit que l'entité que tu manipules pouvait avoir un dossier associé, donc il crée une propriété Dossier que tu peux affecter depuis ton code.
    Maintenant je connais pas l'outil donc je sais pas si là derrière il gère du lazy loading ou de l'update en cascade, mais probablement que lorsque tu affectes un dossier à cet objet, la propriété IDDossier (ou ce qui sert de clef étrangère) est mise à jour automatiquement durant l'affection.

    PS: CRUD veut dire Create, read, update and delete, soit les opérations de base que l'on fait avec un objet de base de donnée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Suppression d'objets dans une collection
    Par master56 dans le forum VB.NET
    Réponses: 7
    Dernier message: 03/06/2010, 21h46
  2. Socket (SMTP) vers objet MimeMessage : conversion ?
    Par Loicb dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 06/12/2004, 18h21
  3. Réponses: 13
    Dernier message: 16/04/2004, 12h00
  4. [Vb.net] Indexé un objet crée dans une boucle
    Par picpic dans le forum Windows Forms
    Réponses: 10
    Dernier message: 17/12/2003, 14h37

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