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

Windows Forms Discussion :

Formulaire modification connexion BDD


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 89
    Points : 51
    Points
    51
    Par défaut Formulaire modification connexion BDD
    Boujour à tous,

    Je souhaite pour mon projet c# permettre à plusieurs ordinateurs de travailler sur la même base de données.
    Pour cela, j'ai intégré dans le projet un usercontrol permettant de modifier la connexion à la base de données (ce formulaire doit fonctionner de la même façon que celui permettant d'ajouter une connexion à une base de données sous visual studio).

    Ce code me permet d'afficher un liste des serveur sql server disponibles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SqlDataSourceEnumerator SDSE = SqlDataSourceEnumerator.Instance;
    System.Data.DataTable table = SDSE.GetDataSources();
     
    // Affichage des base de données
    foreach (System.Data.DataRow row in table.Rows)
    {
    	ComboBoxConnexion.Items.Add(row["ServerName"].ToString());
    }
    J'ai penser à modifier le App.config mais ne sachant comment faire, je l'est tout simplement écraser en créant un nouveau fichier App.config.

    Quelqu'un peut-il m'aider à résoudre mon problème ?
    Pouvez-vous m'indiquer les objets à utiliser ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par PierreBTSIG Voir le message
    Quelqu'un peut-il m'aider à résoudre mon problème ?
    Ben tu n'as pas vraiment expliqué ce qui te posait problème... en tout cas, en lisant ton message je comprends pas ce qui te bloque exactement

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    En fait c'est très simple : Je ne sais pas du tout comment faire pour modifier la connexion à la base de données pour l'ensemble de mon projet.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ben en fait il faut que tu aies une chaine de connexion "globale" que tu utilises dans tout le projet. Pour ça, une solution est de la mettre comme membre statique d'une classe (ou comme membre d'instance d'une classe Singleton).
    Puisque tu as besoin de pouvoir la modifier dynamiquement, malheureusement tu ne peux pas la mettre dans les settings, parce que les settings de type "connection string" ont forcément le scope Application et sont donc en lecture seule (je trouve ça débile, mais c'est comme ça...).

    Donc, si on va au plus simple, tu peux faire quelque chose comme ça:
    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
    class Program
    {
        static void Main(string[] args)
        {
            ...
        }
     
        public static string ConnectionString;
     
    }
    ...
     
    // Pour modifier la chaine de connexion :
    Program.ConnectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
    ...
     
    // Pour utiliser la chaine de connexion
    SqlConnection connection = new SqlConnection(Program.ConnectionString);
    ...

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    Donc si j'ai bien compris, je ne dois plus utiliser de fichier App.config pour la connexion et je dois modifier les endroits où j'effectue une connexion à la base de données.
    Je ne maitrise pas encore trop le c# et je ne sais pas si cette solution sera simple à utiliser pour mon projet, je vais donc détailler un peu plus sa composition :
    1 projet GestionRando
    1 "sous projet" GestionRandoCore contenant GestionRando.edmx et App.config
    Dans GestionRando, j'ai copié le App.config de GestionRandoCore.
    Pour utiliser la base de données, j'utilise les objet directement (Personne.nom ...) et je sauvegarde en base avec ((App)App.Current).GestionRandoEntities.SaveChanges();

    Est ce que cela fonctionnera toujours ?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ah ok, tu utilises Entity Framework...
    Dans ce cas, c'est un peu plus compliqué pour la chaine de connexion, parce qu'elle contient, d'une part, les métadonnées du modèle, et d'autre part, la chaine de connexion "réelle" vers la base.
    Regarde ce post où j'avais expliqué comment faire
    (évidemment il faut modifier un peu le code, vu que c'était pour SQLite...)

Discussions similaires

  1. Connexion BDD oracle TNS protocol adapter error
    Par cedrickb dans le forum Access
    Réponses: 3
    Dernier message: 30/12/2004, 13h02
  2. [tomcat][jsp] Comment gerez vous vos connexions bdd?
    Par olive.m dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 21/06/2004, 17h35
  3. modification champs BDD
    Par jeff06_2 dans le forum Bases de données
    Réponses: 4
    Dernier message: 05/06/2004, 20h10
  4. pb de connexion bdd
    Par picoti2 dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/03/2004, 18h53
  5. [BCB6] DBGrid et mode de connexion BDD... demain
    Par Seb des Monts dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/01/2004, 13h56

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