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 :

Comment modifier le Data Source du appConfig dynamiquement [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Par défaut Comment modifier le Data Source du appConfig dynamiquement
    Bonjour,

    Voilà j'ai une IHM avec des listViews qui affiche le contenu des tables, j'aimerai que quand je click sur "ouvrir" ça m'ouvre une dialogbox et que l'utilisateur choisisse une bdd pour après récupérer le chemin et le mettre dans le Data Source du fichier appconfig.
    Evidemment le schéma de la Bdd sera le même sauf que le contenu pourrait être différent d'ou l'utilité de ma fonction.
    Voilà mon code, merci d'être souple sur vos remarques sa fait qu'1 mois que je fais du c#/.net
    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
     
    private void ouvrirToolStripMenuItem_Click(object sender, EventArgs e)
            {
                String Filename="";
                OpenFileDialog Dialog = new OpenFileDialog();
                Dialog.InitialDirectory = "C:\\";
                Dialog.Filter ="sdf files (*.sdf)|*.sdf|All files (*.*)|*.*" ;
                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                    Filename = Dialog.FileName;
     
                }
                string provider = "System.Data.SqlServerCe.4.0";
                DbProviderFactory factory = DbProviderFactories.GetFactory(provider);
     
                DbConnectionStringBuilder builder = factory.CreateConnectionStringBuilder();
                builder.Add("Data Source", Filename);
     
                Configuration config = ConfigurationManager.OpenExeConfiguration(Filename);
     
                //Modifier une conn deja existante.
                ConnectionStringSettings cs = config.ConnectionStrings.ConnectionStrings["BDDFinalEntities"];
                cs.ConnectionString = builder.ConnectionString;
                config.Save();
    }
    Mon erreur est que cs.ConnectionString = builder.ConnectionString; ->
    La référence d'objet n'est pas définie à une instance d'un objet.
    Je comprend pas pourquoi car logiquement il l'es là non ?
    A force d'assimiler des infos je me perd, désolé si l'erreur est evidente

    Thomas

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConfigurationManager.OpenExeConfiguration(Filename);
    Pour moi fileName doit pointer vers un .exe et lui ira chercher le .config

  3. #3
    Membre averti
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Par défaut
    Salut BenoitM,

    En effet jviens de m'en apercevoir, donc je dois le faire pointer sur le .exe de mon IHM? Car je comprend pas très bien sinon sur quoi pointer...

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    Voici quelques exemples
    http://msdn.microsoft.com/en-us/libr...gssection.aspx

    http://msdn.microsoft.com/en-us/libr...onstrings.aspx

    Donc dans ton application tu ajoutes un fichier de config (Add New Item/Application configuration file)
    Dans celui-ci tu indiques les connection possible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <configuration>
      <connectionStrings>
        <add name="Local" connectionString="LocalSqlServer: data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=aspnetdb"
          providerName="System.Data.SqlClient" />
        <add name="SQLDev" connectionString="LocalSqlServer: data source=SQLDev;Integrated Security=SSPI;Initial Catalog=aspnetdb"
          providerName="System.Data.SqlClient" />
      </connectionStrings>
    </configuration>
    Dans ton application tu lis les connections possible et tu les ajoutes à ta combobox

    Tu utiliseras la connection string selectionné dans la combobox

  5. #5
    Membre averti
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Par défaut
    Alors en faite vu j'utilise Entity Framework, j'ai déjà fais cette manip et mon fichier appConfig est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <connectionStrings>
        <add name="BDDFinalEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;Data Source=|DataDirectory|\BddFinal.sdf&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>
    </configuration>

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    dans le 2eme liens tu as comment les lires

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    // Get the ConnectionStrings section.        
    // This function uses the ConnectionStrings 
    // property to read the connectionStrings
    // configuration section.
    public static void ReadConnectionStrings()
    {
     
      // Get the ConnectionStrings collection.
      ConnectionStringSettingsCollection connections =
          ConfigurationManager.ConnectionStrings;
     
      if (connections.Count != 0)
      {
        Console.WriteLine();
        Console.WriteLine("Using ConnectionStrings property.");
        Console.WriteLine("Connection strings:");
     
        // Get the collection elements.
        foreach (ConnectionStringSettings connection in 
          connections)
        {
          string name = connection.Name;
          string provider = connection.ProviderName;
          string connectionString = connection.ConnectionString;
     
          Console.WriteLine("Name:               {0}", 
            name);
          Console.WriteLine("Connection string:  {0}", 
            connectionString);
         Console.WriteLine("Provider:            {0}", 
            provider);
        }
      }
      else
      {
        Console.WriteLine();
        Console.WriteLine("No connection string is defined.");
        Console.WriteLine();
      }
    }

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/04/2009, 12h57
  2. Réponses: 1
    Dernier message: 22/08/2008, 18h39
  3. Réponses: 4
    Dernier message: 19/06/2008, 15h22
  4. [Texte] comment modifier dynamiquement ?
    Par frelep dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/09/2005, 11h46

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