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 :

DB production et dévelopement


Sujet :

C#

  1. #1
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut DB production et dévelopement
    Bonjour,

    je suis actuellement en train de développer une application basée sur une DB SQL Serveur.

    J'aimerais pouvoir avoir un environnement de développement et un autre de production, de sorte que au lancement de l'appli l'utilisateur puisse choisir la base de données.

    Si quelqu'un à une idée de comment faire, je prends

    Merci

  2. #2
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Salut

    Tu mets deux connections string dans ton web.config nommés "prod" et "dev".

    Et une fois que ton utilisateur a choisi ce qu'il voulait, tu récupères la connection string associée.

    Bon courage.

  3. #3
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    Bonjour et merci de ta réponse

    cependant,

    le dataset étant défini non pas par moi mais par Visual studio, où puis-je mettre à jour la valeur de la chaine de connection pour qu'elle soit valide dès le départ?

    merci merci en tout les cas

  4. #4
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour bonjour,

    Alors pour résumer, à l'ouverture de l'application, un pop-up demande quelle base utiliser
    ensuite j'ouvre une fenetre qui doit m'afficher selon la base choisie

    voici comment que je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            // Constructeur
            public wDeals(Environments newEnvironment)
            {
                if (NewEnvironment(newEnvironment))
                {
                    InitializeComponent();
                }
                else
                {
                    this.Close();
                }
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
            private bool NewEnvironment(Environments newEnvironment)
            {
                currentEnvironment = newEnvironment;
                string curConnectionString = string.Empty;
                string csCurrent = "CST.Deals.Properties.Settings.CST_SQLConnectionString1";
                string csProduction = "CST.Deals.Properties.Settings.CST_SQL_PRODUCTION";
                string csAcceptance = "CST.Deals.Properties.Settings.CST_SQL_ACCEPTANCE";
                ConnectionStringSettings connex = ConfigurationManager.ConnectionStrings[csCurrent]; 
                ConnectionStringSettings newConnex;
                switch (currentEnvironment)
                {
                    case Environments.Acceptance:
                        curConnectionString = ConfigurationManager.ConnectionStrings[csAcceptance].ConnectionString;
                        break;
                    case Environments.Production:
                        curConnectionString = ConfigurationManager.ConnectionStrings[csProduction].ConnectionString;
                        break;
                    default:
                        curConnectionString = string.Empty;
                        break;
                }
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                config.ConnectionStrings.ConnectionStrings.Clear();
                config.ConnectionStrings.ConnectionStrings.Add(
                    new ConnectionStringSettings(csCurrent, curConnectionString, "System.Data.SqlClient"));
                config.Save(ConfigurationSaveMode.Full);
                if (curConnectionString == string.Empty) return false; else return true;
            }
    alors, ça ne génère aucune erreur...
    mais je suis toujours sur la base définie par defaut (csCurrent)

    alors je fait quelle bétises???

    merci merci

  5. #5
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Salut

    J'ai l'impression que tu ne comprends pas grand chose à ton code...
    Pourtant il y a tout ce qu'il faut dedans...

    J'ai un peu de mal à comprendre pourquoi tu récupères des connectionsString, puis tu supprimes tout avant d'en rajouter.

    J'aurais fait quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    public string getConnectionString(Environments newEnvironment)
    {
    string curConnectionString ;
    switch (newEnvironment)
                {
                    case Environments.Acceptance:
                        curConnectionString = ConfigurationManager.ConnectionStrings[csAcceptance].ConnectionString;
                        break;
                    case Environments.Production:
                        curConnectionString = ConfigurationManager.ConnectionStrings[csProduction].ConnectionString;
                        break;
                    default:
                        curConnectionString = ConfigurationManager.ConnectionStrings[csCurrent].ConnectionString;
                        break;
                }
     
    return curConnectionString;
    }
     
     
    //quelque part dans ton code 
    string connString = getConnectionString(newEnvironment);
     
    SqlConnection ConnexionSQL = new SqlConnection(connString);
    ....................;

  6. #6
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour, bonjour

    Citation Envoyé par bizet
    J'ai un peu de mal à comprendre pourquoi tu récupères des connectionsString, puis tu supprimes tout avant d'en rajouter.
    Simplement parce que apparemment et d'après les infos que j'en ai, j'ai cru comprendre que je ne peux pas changer les string connectionstrng dans app.config
    donc une solution est de recuperer l'info de connection utilisée
    et celle que l'on veut utiliser
    effacer ( ici j'efface tout mais on pourrait juste effacer csCurrent )
    puis réintroduire la connection csCurrent modifiée.

    Ceci dis, je pense que tu n'as pas vu que je passait par le dataset designer pour créer la connection originale.
    je pense que si j'avais fait toute mes connections manuelement, l'exemple que tu donnes est effectivement le bon à appliquer.

    enfin, finissons par une note positive
    il suffit que je rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConfigurationManager.RefreshSection("connectionStrings");
    et là cela fonctionne...

    Toutefois, si quelqu'un pense que ma méthode c'est de la daube ou que je dis une bétise(pour changer ), je suis tout ouïe et avide qu'éclaircissement sur le sujet

Discussions similaires

  1. Que choisir pour déveloper en C++ : wxWidget, Qt, GTK... ?
    Par Spack dans le forum Bibliothèques
    Réponses: 13
    Dernier message: 17/12/2006, 10h06
  2. Tests Unitaires - Production de documents
    Par giviz dans le forum Test
    Réponses: 13
    Dernier message: 07/02/2005, 08h41
  3. [Info]Interface de dévelopement JAVA
    Par Kevgeii dans le forum EDI et Outils pour Java
    Réponses: 3
    Dernier message: 04/02/2005, 17h16
  4. Choix d'un sgbd open source pour de la production
    Par gueeyom dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 14/05/2004, 11h40

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