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

C# Discussion :

Bibliotheque de classes et base de données


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Par défaut Bibliotheque de classes et base de données
    Bonsoir,

    Débutant en C#, Je me permets de vous contacter en vue d'obtenir vos avis et conseils.

    Dans le cadre d'une petite appli, j'ai choisi de créer une bibliothèque de classe.
    Cette dernière contient pour le moment 2 classes.

    L'un d'elle gère tout ce qui concerne la base de données (connexion etc...).
    J'arrive à exploiter cette dernière via mon appli principale.

    Cependant, je souhaiterai ajouter dans la bibliothèque une classe qui aurait pour but de récupérer
    des données d'une base de données différente de celle utilisée par mon appli principale.

    Je pense que la classe en question devrait pouvoir tester si la connection est déjà ouverte
    ou non avant de se charger de récupérer les données qu'elle doit renvoyer à l'appli par contre,
    je ne vois pas trop comment procéder.

    Comme il s'agit de deux bases de données différentes, la chaine de connexion diffère selon le contexte
    dans lequel elle est utilisée (par l'appli ou la classe de la bibliothèque elle même).

    Pourriez-vous s'il vous plaît m'éclairer sur ce point ?

    En vous remerciant

  2. #2
    Membre confirmé
    Homme Profil pro
    Apprenti en développement logiciels
    Inscrit en
    Octobre 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Apprenti en développement logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 67
    Par défaut
    Bonjour,

    Je ne comprends pas bien le pourquoi des 2 bases de données (apparemment une où tu lis et l'autre où tu écris), pourquoi pas la même ? ... Mais bon ça c'est ton problème !

    Pour ma part, j'ai l'habitude de mettre dans une classe Database 2 méthodes, une pour la connexion et une pour la deconnexion à la base.
    Ainsi je récupère quand je créer ma DAO, je n'ai plus qu'à faire la co et la déco.

    Si tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public void connexion_baseA()
    {
        // ton tralala de connexion
    }
     
    public void deconnexion_baseA()
    {
         connection_odbc.Close();
    }
    Et que tu fais pareil pour la base B.

    Tu auras 2 gestion bien distincte.

    Donc du coup, ta méthode lecture de la Table CLIENT de la base A utilisera la DAO correspondant à la base A avec la co et la deco. Et ainsi de suite pour la base B.

    J'ai essayé d'être assez généraliste.


    J'espère t'avoir aidé.

    Cordialement,

    M4itreG

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    il est assez courant de devoir faire une dll qui puisse se connecter à plusieurs bases de données
    la 1ère question est alors est-ce plusieurs types de bases de données ou plusieurs bases de données du même type mais avec des chaines de connexion différentes

    pour la chaine de connexion à changer, il faut alors que ta dll ait en paramètre la chaine de connexion
    tu peux alors faire un paramètre static avec la chaine de connexion par défaut, que ton programme principal settera au démarrage, et éventuellement la possibilité de changer ponctuellement (de manière non static pour prendre le dessus sur le paramétrage static), ce qui te permet de te connecter sur plusieurs bases pendant l'exécution de ton programme

    pour plusieurs types de bases de données, c'est un peu le même principe, au détail près que les objets changent, et qu'il faut le prendre en compte
    le framework le permet via les classes de base (sqlclient.sqlcommand et oledb.oledbcommand héritent tous 2 de DbCommand par exemple)
    ou sinon refaire des classes et coder ca toi même

    on peut aussi mixer les 2 permettant alors d'avoir une dll qui se connecte à n'importe quoi
    on peut rajouter du code à chaque fois qu'on veut gérer un type de base supplémentaire

    par contre pour le changement d'une base à une autre, ca peut poser problème, le langage sql peut ne pas suivre la norme (access, mysql ...) et avoir une syntaxe différente d'une base à l'autre
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Classe connection base de données (Oracle)
    Par Jinkas dans le forum C#
    Réponses: 9
    Dernier message: 18/03/2012, 15h43
  2. Réponses: 0
    Dernier message: 25/07/2011, 17h49
  3. [WD16] Classe et base de données
    Par Pascal26120 dans le forum WinDev
    Réponses: 6
    Dernier message: 18/03/2011, 08h32
  4. classes JPA ==> Base de données
    Par goldenman84 dans le forum Spring Web
    Réponses: 0
    Dernier message: 24/06/2010, 01h22

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