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 :

[2.0] ConnectionString Projet C# et SiteWeb


Sujet :

C#

  1. #1
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut [2.0] ConnectionString Projet C# et SiteWeb
    Bonjour,

    Dans une solution VS2005 contenant un siteweb et un DataSet dans un projet C#, je souhaiterais que la ConnectionString de mon DataSet utilise celle définie dans le web.config de mon siteweb ?

    Merci pour votre aide

    Stéphane

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Tu ne peux pas faire appel aux Settings car ce n'est pas le même projet donc je pense que tu va devoir lire le fichier Web.config "à la main"

  3. #3
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Citation Envoyé par stephane.net
    Bonjour,

    Dans une solution VS2005 contenant un siteweb et un DataSet dans un projet C#, je souhaiterais que la ConnectionString de mon DataSet utilise celle définie dans le web.config de mon siteweb ?

    Merci pour votre aide

    Stéphane
    Qu'appelles-tu un "projet C#"?

  4. #4
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut
    Merci pour vos réponse

    Ditch,
    Avec VS2005 "A project for creating a C# class library (.dll)"


    En poursuivant mes recherches, j'ai lu qu'en général, la ConnectionString définie en dur dans le fichier Settings.Designer.cs était celle utilisé pour le développement mais qu'ensuite il était possible "à l'exécution" de la redéfinir à partir du web.config ou bien de n'importe quel fichier de configuration. Sauf que ConnectionString est une propriété ReadOnly

    Je cherche une manière très simple de faire (je débute )

    Merci pour tout aide sur ce sujet.

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Reprenons:

    Tu as une solution VS 2005 avec 2 projets:
    - 1 site Web avec son fichier Web.config.
    - 1 projet de type Class library dans lequel tu as ton Dataset

    Tu voudrais, depuis le DataSet, utiliser la ConnectionString définit dans le web.config, c'est bien cela ?

    Si oui, il faut que Ditch nous explique comment faire car à ma connaissance, cela n'est pas possible de le faire en utilisant les Properties: en effet, celles-ci étant liées à un projet, on ne peut pas, depuis un projet "externe" avoir accès au Properties d'un projet.

    Mais s'il y a une solution (autre que le parsing du fichier XML), cela m'intéresse fortement aussi

  6. #6
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Une librairie de classe, ca fait partie d'un projet. Tu imagines si tu dois avoir 1 fichier de config par dll? On ne s'en sortirait pas...

  7. #7
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Je peux poster un exemple ce soir... Mais ca fonctionne vraiment tout seul

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par Ditch
    Une librairie de classe, ca fait partie d'un projet.
    Oui, bien sur mais lui, il a également un site Web donc un projet différent

    Je suis pas sur qu'on se comprenne donc oui, je veux bien ton exempel ce soir

  9. #9
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut
    oui c'est très exactement ce que je souhaite faire

    (et même je peux compliquer un peu puisque mes connectionsString seront cryptés dans le web.config.. .)

    Entre temps j'ai trouvé quelques infos :

    Channel 9 Forums : Connection String for Typed Datasets

    - la propriété Connection du TableAdapter peut être Public et donc à chaque utilisation du tableadapter il faut penser à setter la connectionString avec la valeur du web.config
    - Modifier le fichier Settings.Designer.cs, ajouter un Set{} à la propriété MaconnectionString utilisé dans le global.asa


    quoi d'autre...?

  10. #10
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Ca me parait VRAIMENT bizarre vos trucs. J'peux te jurer que je prends mon applic, je te la file avec la base, tu changes le web.config et mes 4 DataSets qui sont dans des class librairy fonctionnent

    Celle bazar.designer.cs c'est pour vs en gros, c'est pas utile ailleurs. Heureusement, t'imagines la galère.

    Tu as dit que tu ne pouvais pas lire le fichier config d'un autre projet. Je suis d'accord là dessus sauf qu'ici sa class librairy, il y a une référence dessus depuis le projet web. Du coup elle fait partie de l'applic et peut lire le fichier de config.

  11. #11
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut
    Ditch,

    A quelle moment tu définis les ConnectionString de tes Dataset ?

  12. #12
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Un exemple. J'ai deux projets. Un web et un avec une class à la noix.

    Cette classe lit le fichier web.config. Si il est référencé dans une applic Windows, ce sera le app.config

  13. #13
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut
    Merci Ditch

    Mais la propriété ConnectionString du Settings est en ReadOnly... donc tu ne peux pas la setter de cette manière là...

    Par contre je viens de découvrir quelque chose :

    après avoir lu l'article ci-dessous :

    Ian Blackburn's Weblog : Connection Strings and Typed DataSets - explanations (and security notes)

    j'ai remarqué que dans le fichier app.config de mon projet de Class la propriété name de ta ConnectionString n'est pas le nom que tu lui as donné dans le wizard tu TableAdapter... mais un nom du style "Namespace.connectionstringName".

    Alors que dans mon web.config du site web la propriété name de ma connectionString était "connectionstringName" et non "Namespace.connectionstringName"...

    Alors en rajoutant une ConnectionString contenant une propriété Name identique à celle déclarée dans l'app.config de mon projet de DataSet j'ai pu constaté que le DataSet utilisait bien la Cs du web.config

    Parcontre, j'ai plusieurs projets de Class contenant des Dataset et chacun à son propre Namespace... et chacun doivent utiliser la même connectionString. J'en déduis donc que dans mon web.config je dois avoir autant de ConnectionString que de Namespace...


  14. #14
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Et ca marche un truc comme ca ? Vraiment étonnant mais bon, si tu le dis, j'aurais appris quelque chose....

  15. #15
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Citation Envoyé par stephane.net
    Merci Ditch

    Mais la propriété ConnectionString du Settings est en ReadOnly... donc tu ne peux pas la setter de cette manière là...

    Par contre je viens de découvrir quelque chose :

    après avoir lu l'article ci-dessous :

    Ian Blackburn's Weblog : Connection Strings and Typed DataSets - explanations (and security notes)

    j'ai remarqué que dans le fichier app.config de mon projet de Class la propriété name de ta ConnectionString n'est pas le nom que tu lui as donné dans le wizard tu TableAdapter... mais un nom du style "Namespace.connectionstringName".

    Alors que dans mon web.config du site web la propriété name de ma connectionString était "connectionstringName" et non "Namespace.connectionstringName"...

    Alors en rajoutant une ConnectionString contenant une propriété Name identique à celle déclarée dans l'app.config de mon projet de DataSet j'ai pu constaté que le DataSet utilisait bien la Cs du web.config

    Parcontre, j'ai plusieurs projets de Class contenant des Dataset et chacun à son propre Namespace... et chacun doivent utiliser la même connectionString. J'en déduis donc que dans mon web.config je dois avoir autant de ConnectionString que de Namespace...

    Non non, pas si tu fais comme je viens de te le montrer.

    J'ai des applications modulaires. Je ne peux en aucun cas toucher au moteur de l'application mais je rajoute des fonctionnalités. Très bien, je la développe mais c'est à la fonctionnalité à prendre les infos qu'il lui faut. D'ailleurs qu'est-ce qu'il lui faut? Si tu es seul à développer tu le sais. Si vous êtes 10, bon amusement pour celui qui est en centre

    Ce que je t'ai montré fonctionne non? Tu lis la chaine de connexion quand tu remplis ton dataset et c'est réglé, tu auras changer ta connectionstring à la volée et tu n'as qu'un seul fichier de config.

  16. #16
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Citation Envoyé par Thomas Lebrun
    Et ca marche un truc comme ca ? Vraiment étonnant mais bon, si tu le dis, j'aurais appris quelque chose....
    Non non, j'ai du code planqué quelque part dans l'applic qui fait semblant A toi de le trouver Voilà, au moins ca aura servi ceci

    Je ferai peut être un "petit papier" à ce sujet.

  17. #17
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut
    Ditch,

    J'ai rajouté un dataset à ton autre projet :
    ça a automatiquement rajouté un un fichier app.config et définit une propriété dans settings de type ConnectionString que j'ai pu appeller pendant le wizard du tableadapter : cs

    tu verras que le cs définit dans "autre projet" et le cs définit dans le web.config n'ont pas le même nom

    Deplus, la propriété ConnectionString de "Autre projet" est en readonly, tu ne peux pas la setter.



    Stéphane
    Fichiers attachés Fichiers attachés

  18. #18
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Pas sur de ton comprendre à ce que tu veux faire mais dans le fichier Dataset2.Designer.cs, remplace cette ligne:

    this._connection.ConnectionString = global::AutreProjet.Properties.Settings.Default.cs;


    par cette ligne:
    this._connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["cs"].ConnectionString;

  19. #19
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut
    Settings.Designer.cs est un fichier "auto-géné", je ne peux rien remplacer dedans ...?

  20. #20
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut
    pardon je voulais dire DataSet2.Designer.cs

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Qu'est ce qu'un grand projet ?
    Par Geronimo dans le forum Débats sur le développement - Le Best Of
    Réponses: 62
    Dernier message: 04/04/2013, 14h52
  2. [Delphi] Association composants-projet
    Par Pierre Castelain dans le forum Composants VCL
    Réponses: 6
    Dernier message: 31/07/2002, 16h20
  3. Parametrage des options de projet
    Par ares7 dans le forum EDI
    Réponses: 7
    Dernier message: 22/07/2002, 15h33
  4. Réponses: 6
    Dernier message: 21/06/2002, 14h48
  5. Les fichiers d'un projet
    Par Manolo dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/05/2002, 17h51

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