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

ASP.NET Discussion :

Modifier la Connection String à la demande de l'utilisateur


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2004
    Messages : 74
    Par défaut Modifier la Connection String à la demande de l'utilisateur
    Bonjour,

    J'ai deux BD, une avec les données actuelles et une avec les données archivées et j'ai une application. Habituellement les gens utilisent toujours les données actuelles, ils arrivent cependant qu'ils veuillent voir les données archivées, j'ai donc mis un bouton sur la page d'accueil qui permet de switcher aux vieilles données. Je souhaite donc, à l'appui de ce bouton, changer la connection string.

    J'ai ces deux lignes dans web.config:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <add key="connectionString" value="User=Utilisateur;Password=MotDePasse;Database=C:\\...\\BD.fdb;Server=localhost;Charset=ISO8859_1;Connection lifetime=15;Pooling=true;MaxPoolSize=50"></add>
    <add key="connectionStringArchives" value="User=LECTEUR;Password=MotDePasse;Database=C:\\...\\BD_archives.fdb;Server=localhost;Charset=ISO8859_1;Connection lifetime=15;Pooling=true;MaxPoolSize=50"></add>
    Et dans mon code je récupère ma connection ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string connStr = ConfigurationManager.AppSettings["connectionString"];
    FbConnection myConnection = new FbConnection(connStr);
    Mais attention, je ne veux pas que ca change la string pour tous les autres qui accèdent à l'application en même temps. Juste à celui qui à demandé cette action.

    Comment faire?

    Merci

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Comme tu fais, pas de pb

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2004
    Messages : 74
    Par défaut
    ... je ne comprends pas... c'est que je fais rien en ce moment! Comme c'est toujours "ConnectionString" qui est appellé dans mon code, je ne peux pas modifier cela pour ConnectionStringArchives manuellement dans toutes les pages..

    Je peux changer la valeur du "ConnectionString" sans que ca affecte les autres utilisateurs du système?

    Mona

  4. #4
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    défini en variable de page ta connectionstring:

    ensuite dans le oninit de ta page tu defini ta connection string pour l'utilisation standard :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connStr = ConfigurationManager.AppSettings["connectionString"];

    Tu rajoutes un evenement sur la récupération de l'evenement lié à la visualisation de ton archivage et tu lui changes sa connection string.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connStr = ConfigurationManager.AppSettings["connectionStringArchives"];
    Voila le principe, a faire évoluer en fonction de ton cas, des evenements qui se déroulent sur ta page, ect...

  5. #5
    Membre confirmé

    Inscrit en
    Octobre 2002
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 139
    Par défaut
    Hello,

    perso, pour ton cas j'aurai stockée la chaine de connexion à la base de données dans une variable session.

    krest

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2004
    Messages : 74
    Par défaut
    Bonjour,

    Ok je vois comment je peux la changer en utilisant une variable de page, cependant les risques d'erreurs sont grands car j'ai plusieurs pages aspx et j'en ajoute continuellement, alors il me faudrait modifier et ajouter cela dans toutes les pages. Je pense que l'idée de le mettre dans une variable de session risque de causer moins d'erreurs futures.

    Je crois que je vais initier ma variable de session dans le onLoad de ma page d'accueil comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session["connectionString"] = ConfigurationManager.AppSettings["connectionString"];
    et la modifier au click du bouton.

    Ce n'est pas trop lourd d'avoir à trainer la connectionString dans une variable de session? Ce n'est pas une mauvaise pratique?

    Sinon je pourrais toujours garder mon code le même mais mettre trois string de connexion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <add key="connectionString" value="User=Utilisateur;Password=MotDePasse;Database=C:\\...\\BD.fdb;Server=localhost;Charset=ISO8859_1;Connection lifetime=15;Pooling=true;MaxPoolSize=50"></add>
    <add key="connectionStringArchives" value="User=LECTEUR;Password=MotDePasse;Database=C:\\...\\BD_archives.fdb;Server=localhost;Charset=ISO8859_1;Connection lifetime=15;Pooling=true;MaxPoolSize=50"></add>
    <add key="connectionStringCourant" value="User=Utilisateur;Password=MotDePasse;Database=C:\\...\\BD.fdb;Server=localhost;Charset=ISO8859_1;Connection lifetime=15;Pooling=true;MaxPoolSize=50"></add>
    Et modifier le contenu de la connexion string du web.config à la place comme ca?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConfigurationManager.AppSettings["connectionString"] = ConfigurationManager.AppSettings["connectionStringArchives"]
    Ca ne le modifierai pas pour tous les utilisateurs?

    Quelle est la meilleure façon entre les deux?

    Merci de votre précieuse aide!

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

Discussions similaires

  1. Configurer dynamiquement la connection string
    Par dysko dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/04/2007, 16h09
  2. Modifier dynamiquement la String Table
    Par Hepm dans le forum MFC
    Réponses: 2
    Dernier message: 15/02/2007, 11h30
  3. Connection String Editor: au Run-Time
    Par Gugli dans le forum Delphi
    Réponses: 2
    Dernier message: 13/10/2006, 20h46
  4. [VB.Net 2.0/Access] Comment modifier la connection à une DB ?
    Par Vonotar dans le forum Accès aux données
    Réponses: 4
    Dernier message: 06/07/2006, 08h58
  5. [EJB][WEBLOGIC][JBuilder]Modifier ma connection au pool
    Par Devil666 dans le forum Weblogic
    Réponses: 11
    Dernier message: 21/04/2005, 11h25

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