Modificare a Runtime l’impostazione della connectionString

April 19th, 2008 by Delivery Leave a reply »

In questi giorni mi sono dedicato interamente allo sviluppo di un’applicazione client ed avevo l’esigenza di modificare continuamente da form la connessione al Database (sqlServer). Immaginate quanto sia seccante ogni volta andare nell’ app.config e cambiare ogni volta i parametri. Beh..ecco un trucchetto che potrebbe esservi utile per fare una cosa del genere a Runtime:

Ovviamente non abbiamo accesso in scrittura all’app.config quindi la prima cosa da fare è crearci una Property all’interno del namespace My in questo modo:

Public WriteOnly Property RunTimeConnectionString() As String
    Set(ByVal value As String)
        My.Settings("MiaConnectionString") = value
    End Set
End Property

Bene..ora nell’evento MySettings_PropertyChanged (cioè alla modifica delle nostre impostazioni) testiamo la connessione (non è obbligatorio ma facciamolo per evitare che l’applicazione vada in crash Tongue out

Private Sub MySettings_PropertyChanged(ByVal sender As Object, ByVal e As
	 	System.ComponentModel.PropertyChangedEventArgs) Handles Me.PropertyChanged
    Dim connection As New SqlClient.SqlConnection
    connection.ConnectionString = My.Settings("MiaConnectionString")
    Try
        connection.Open()
    Catch ex As Exception
        MsgBox("Errore di connessione al Database. Verificare la connessione",
		MsgBoxStyle.Critical, "Connessione")
    Finally
        connection.Close()
    End Try
End Sub

Ok..ci siamo quasi. Ora creiamoci una bella form dove inserire i dati relativi alla nostra connessione al Database. Creiamo qualcosa di simile:

dbsettings

Ora non ci resta che salvare le impostazioni relative alla nostra connessione mediante la chiamata alla nostra Property creata in precedenza in questo modo:

My.Settings.RunTimeConnectionString = "Data Source=" & ServerTxt.Text & ";Initial Catalog=
				" & dbTxt.Text & ";Persist Security Info=True;
				User ID=" & userTxt.Text & "; Password=" & passTxt.Text

Le informazioni relative nostra conenssione sono state aggiornate!!! Open-mouthed

Advertisement

Leave a Reply