Forse non ho ben capito il problema, ma io in genere faccio così:
creo un file di configurazione che in genere chiamo nomeApplicazione.exe.config
Dato che non sono ancora riuscito a capire come o cryptare questo file, oppure a passargli valori dinamici, per il momento creo un'unica classe (ad esempio per connettermi al db) e modifico il valore del file:codice:<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="mySqlConnectionString" value="database=some;server=192.192.192.192;port=3333;user id=somei;password=xxxxxxxxxxx" /> </appSettings> </configuration>
Poi, da un form qualsiasi o da un qualsiasi evento, basta che chiamo il metodo "Create" della classe:codice:public static class ConnClass { public static MySqlConnection Create() { string connectionString; Configuration configurator = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); configurator.AppSettings.Settings["mySqlConnectionString"].Value = "database=veroDatabase;server=veroIpServer;port=veraPorta;user id=veroUtente;password=veraPassword"; configurator.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); connectionString = ConfigurationManager.AppSettings["mySqlConnectionString"]; MySqlConnection connessione = new MySqlConnection(connectionString); connessione.Open(); return connessione; } }
P.S.: Scusate l'OT, ma dove potrei aprire un thread riguardante problemi relativi a MySql e i triggers?codice:private void collegaAlDb_Click(object sender, EventArgs e) { try { using(MySqlConnection cn = ConnClass.Create()) { //faccio quello che devo fare cn.Close(); cn.Dispose(); //queste due istruzioni sono superflue qui, dato che all'uscita di "using" la chiamata //a IDisposable verrà comunque effettuata } } catch(MySqlException ex) { MessageBox.Show(ex.Message.ToString()); } }
Grazie e scusate.

Rispondi quotando