Stringa di connessione

sabato 28 novembre 2009 - 17.50

faustoDrum Profilo | Newbie

Salve a tutti!
avrei la necessita di creare una form con una textbox in cui scrivo il testo di una stringa di connessione ad un db MSSQL Express ed un pulsante che (a runtime) mi vada ad aggiornare la ConnectionString dell'applicazione in funzione del testo scritto nella textbox.
Ammesso che tutto ciò sia possibile, quale codice dovrei scrivere sul pulsante per realizzare la magia???
Ringrazio anticipatamente per l'aiuto e saluto

CrystalEye Profilo | Newbie

vedi se questo articolo ti può essere di aiuto : http://www.highoncoding.com/Articles/119_Writing_in_Web_config_file_dynamically.aspx

faustoDrum Profilo | Newbie

In tutta onestà il link che mi hai segnalato va oltre la mia capacità e conoscenza della materia. Per quello che ho capito però tratta di "web Config" e non so se ha a che vedere con il mio problema che invece riguarda "Windows Form".
Grazie comunque!

CrystalEye Profilo | Newbie

allora vedi questo pezzo di codice :
Per far in mondo che ti funzioni aggiungi System.Configuration dll.

private void btnChangeConn_Click(object sender, EventArgs e)
{

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConnectionStringsSection connSection = (ConnectionStringsSection)config.GetSection("connectionStrings");

if (connSection != null)
{
connSection.ConnectionStrings["SQLCONN"].ConnectionString = textBox1.Text;
config.Save();
ConfigurationManager.RefreshSection("connectionStrings");
}

}

Spero che questa volta ti sia stata di aiuto

faustoDrum Profilo | Newbie

Potresti cortesemente tradurlo in VB .Net?? non ho la minima conoscenza di C#, C++ o java.
Grazie!

CrystalEye Profilo | Newbie

Ecco qua:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
Dim connSection As ConnectionStringsSection
connSection = DirectCast(config.GetSection("connectionStrings"), ConnectionStringsSection)

If connSection IsNot Nothing Then

connSection.ConnectionStrings("SQLCONN").ConnectionString = TextBox1.Text
config.Save()
ConfigurationManager.RefreshSection("connectionStrings")
' MessageBox.Show(connSection.ConnectionStrings("SQLCONN").ConnectionString)
End If

End Sub

faustoDrum Profilo | Newbie

Ti ringrazio tantissimo per l'aiuto!!
Se non sono troppo sfacciato, approfitto della tua disponibilità per chiederti spiegazioni (anche sinteticamente a mò di 'commento) sul codice in Vb .net che mi hai postato (da molta soddisfazione risolvere i problemi, ma ne dà molta di più scoprirne/capirne la causa).
Ciao e grazie di nuovo!

CrystalEye Profilo | Newbie

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

'apri il file app.config e lo vai ad assegnare a un oggetto di tipo Configuration appunto
'perchè questo è il tipo di ritorno.
' con ConfigurationUserLevel.None specifichi che vuoi ottenere l'app.config utilizzato da tutti gli utenti
Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
Dim connSection As ConnectionStringsSection
'con GetSection recuperi la sezione desiderata del tuo app.config
connSection = DirectCast(config.GetSection("connectionStrings"), ConnectionStringsSection)

'se la sezione indicata esiste la vai a sovrascrivere e salvare
If connSection IsNot Nothing Then
connSection.ConnectionStrings("SQLCONN").ConnectionString = TextBox1.Text
config.Save()
ConfigurationManager.RefreshSection("connectionStrings")

End If

End Sub

Visto che con i commenti non sono tanto brava ti lascio qua un link magari ti sarà di aiuto per approfondire l'argomento
http://msdn.microsoft.com/it-it/library/system.configuration.configurationmanager.openexeconfiguration.aspx

Fammi sapere se funziona ;)

faustoDrum Profilo | Newbie

Per il momento non so quando potrò testare il listato che mi hai gentilmente passato,
Comunque il link che mi ha postato nell'ultimo messaggio è molto interessante.
Ciao Grazie di tutto!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5