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

VB.NET Discussion :

[VB.NET]Comment contourner NotInheritable SqlConnection?


Sujet :

VB.NET

Vue hybride

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Par défaut [VB.NET]Comment contourner NotInheritable SqlConnection?
    J'ai un System.Data.SqlClient.SqlConnection que je dois associer à la propriété Connection de System.Data.SqlClient.SqlCommand.
    Je souhaiterai dériver le SqlConnection pour ajouter des fonctionnalités (mutex). Malheureusement le SqlConnection est NotInheritable !

    Malheureuement, encore une fois, l'appel à cette propriété Connection de System.Data.SqlClient.SqlCommand est effectué à un grand nombre d'endroit dans le code (ne me demandez pas pourquoi ça n'a pas été fait autrement, je ne sais pas... mais c'est comme ça)

    Je m'en suis sorti autrement en récupérant l'exception générée par le SqlClient lorsqu'il y a un problème, mais cette solution ne peut pas être généralisée à tout le programme. Dans le cas qui m'intéressait ça marche, mais ça ne marchera pas toujours. Bref c'est une rustine, rien du plus !
    Si vous avez des idées...

  2. #2
    Expert confirmé
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Par défaut
    Pourquoi ne pas encapsuler
    System.Data.SqlClient.SqlConnection
    et
    System.Data.SqlClient.SqlCommand

    dans des classes maison ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Par défaut
    Oups j'avais oublié un point...
    Le SqlCommand vient.... d'un System.Data.SqlClient.SqlDataAdapter qui est lui même utilisé à de très nombreux endroits et qui est NotInheritable.

    Edit : pas si nombreux que cela finalement pour le SqlDataAdapter. Beaucoup de fois, oui mais c'est bien regroupé. Eventuellement modifier ce dernier ? Mais sans l'héritage ça va être difficile je pense !

  4. #4
    Expert confirmé
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Par défaut
    L'idée serait d'encapsuler les classes :
    -connection
    -adapter
    -command

    Mais tout en implémentant leurs iderfaces respectives dans ta classe maison (VS se fera un plaisir de te générer le squellette )

    Dans ADO.NET des que tu veux ajouter des fonctionnalitées à tes objets d'accés aux données c'est un peu comme si tu construisais ton propre provider maison.

    Donc :
    -Pas d'héritage possible
    -Respect des interfaces plus que fortement conseillé (ça t'éviteras des mauvaises surprises)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Par défaut
    C'est effectivement la seule solution que je vois. Etant donné les implications sur le code existant, je vais garder ma rustine pour l'instant. Si un jour j'ai besoin, je saurais comment faire mais je n'ai pas hâte d'effectuer cette modification... j'espérais une solution moins couteuse en temps de développement.

    Merci de ta réponse neo.51 !

  6. #6
    Expert confirmé
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Par défaut
    Tant qu'a repenser ta couche d'accés aux données et implémenter ton propre provider jettes un coup d'oeuil à ça : http://nx.developpez.com/articles/dac/

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Par défaut
    Bien vu, mais je n'en ai pas le temps. C'est ça d'arriver sur un projet en cours de dev

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

Discussions similaires

  1. [VB.NET]Comment Imprimer une form
    Par bernard06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/10/2011, 17h43
  2. Réponses: 16
    Dernier message: 22/03/2005, 21h57
  3. [IDE][VS.NET] Comment sauvegarder l'état des 'Region' ?
    Par CkurcK dans le forum Contribuez
    Réponses: 2
    Dernier message: 23/02/2004, 14h33
  4. [vb.net] Comment vider un buffer ?
    Par mdc dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/12/2003, 15h43
  5. [VB.Net] Comment generer une page html dynamiquement ?
    Par Anonymous dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/03/2003, 10h22

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