Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C#] cambiare Connection string in progetto dll

    Buongiorno a tutti,
    vorrei poter cambiare in runtime la stringa di connessione di una libreria di classi(dll).
    Ho usato il seguente codice ma la connessione rimane sempre la stessa, non credo sia la soluzione corretta. La nuova connessione verrebbe passata come parametro in input alla funzione sotto descritta:
    codice:
    public void UpdateConnectionStrings(string connectionString)
           {
                try
                {
                    Configuration MyConfig =  ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                    
                    MyConfig.ConnectionStrings.ConnectionStrings[1].ConnectionString = connectionString;
                    MyConfig.Save();
                    ConfigurationManager.RefreshSection("connectionStrings");
                    VariabiliGlobali.V_Globali.ServerLocationAndName = connectionString;
                }
                catch (Exception)
                {
                throw;
                }
           }

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    ciao, era meglio se postavi in c# che viene piu visitato, qui è solo per problemi relativi all'ide
    onnectionStrings[1] si riferisce alla SECONDA stringa di connessione (se mai esiste), gli indici partono da 0 non da 1. Non so se è voluto o è come credo, un errore di distrazione.

    ServerLocationAndName conserva la stringa di connessione? questo tipo di approccio (due posti per memorizzare un informazione) è troppo prono a errori runtime: conserva la stringa in un solo posto e prendila sempre da li. Il file di configurazione è l'ideale mentre quella classe statica di variabili globali è poco OOP.

    PS
    catch -> throw; è esattamente la stessa cosa di non mettercelo proprio il try catch (provare per credere). Gli errori li catturi quando sai cosa farne delle eccezioni, il throw lo usi quando dopo aver fatto qualcosa nel catch, vuoi che l'errore comunque si propaghi per farlo catturare ANCHE a qualcun altro ma se vuoi solo catturare e rilanciare l'eccezione non serve fare cosi il clr lo fa gia in automatico.

  3. #3
    Grazie mille, anche se in ritardo: cmq ho risolto il problema: grazie anche x i suggerimenti sul try cath ( questo a volte succede quando si copia codice senza molto porre attenzione su quello che si copia )
    Saluti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.