VB 2005/2008: connessione a database con ADO.NET 2.0 (2)

Sollecitato da un lettore che mi ha chiesto chiarimenti sul mio primo articolo (https://deghetto.wordpress.com/2008/01/13/vb-20052008-connessione-a-database-con-adonet-20/), mi accingo a spiegare una questione riguardante il file di configurazione dell’applicazione, cioè il famigerato file “Settings.settings“.

Prima di tutto ho creato un esempio completo che potete scaricare all’indirizzo http://www.deghetto.it/blog/download/mdgADONET20connectionString.zip e che deve essere decompresso nella cartella di prova C:\VB2005\. Chissà perché non l’ho pubblicato prima?    🙂

Veniamo ora alla spiegazione in merito ai dubbi che l’articolo ha sollevato in merito al file “Settings.settings”: questo file non è necessario nel file compilato! Come vedrete nel progetto di prova, nella cartella “bin” ci sono due sottocartelle:

  • il programma compilato nella versione “debug”, che è la compilazione classica in ambiente di sviluppo, perché include anche i simboli di debug, utili appunto nel momento dell’esecuzione controllata dall’ambiente di sviluppo;
  • il compilato nella versione “release”, nella quale i simboli di debug sono stati eliminati (migliorando le prestazioni finali del programma).

Per impostare la compilazione della release bisogna modificare un’opzione nel menu “Genera > Gestione configurazione…” e poi cambiare “Configurazione soluzione attiva” da debug a release oppure modificando la stessa opzione a livello di singolo progetto, nella parte inferiore della stessa finestra. Nel nostro caso lo facciamo a livello di soluzione.

Dopo aver cambiato questa impostazione, scegliendo il menu “Genera > Genera mdgADONET20connectionString” ci troviamo con il compilato nella cartella .\bin\release.

In questa cartella c’è un file di nome mdgADONET20connectionString.exe.config che non è altro che il file di configurazione dell’applicazione. E’ un file di testo e, precisamente, in formato XML e contiene la stringa di connessione che avevamo definito a livello di ApplicationSettings

Per verificare che effettivamente viene utilizzato quel file di configurazione, potete provare questa sequenza di operazioni:

  • cambiare il nome al database DBprova.mdb in (per esempio) prova.mdb;
  • eseguire il file .\bin\release\mdgADONET20connectionString.exe epremere il pulsante “ApriDBaccess”: l’applicazione solleverà un’eccezione e potrete solo chiuderla;
  • modificare il file mdgADONET20connectionString.exe.config con NotePad (Blocco note), cambiando la stringa di connessione nel punto dove è indicato il nome del database (da DBprova.mdb a prova.mdb) e salvare il file;
  • eseguire nuovamente il programma .\bin\release\mdgADONET20connectionString.exe e cliccare di nuovo sul pulsante di apertura del database: a questo puntoriceverete il messaggio di conferma di apertura del file.

Questo dimostra che va distribuito tutto il contenuto della cartella release e non solo il file eseguibile.

Annunci

Pubblicato il 24 gennaio 2008, in ADO.NET con tag , , , , . Aggiungi il permalink ai segnalibri. 6 commenti.

  1. Salve,
    Interessante articlo!
    sviluppo da poco tempo applicazioni in VB 2005 e adopero tebelle in SQLServer2005, ho sempre cercato qualche soluzione per poter connettere più applicazioni residenti su più stazioni che puntano su un unico database o spostarsi sul database locale.

    Mi ispiro all’ide di vb2005 dove nella barra degli strumenti alla voce Progetto > Proprietà > Impostazioni cliccando sul pulsante ::: si apre una maschera di selezione connessione e memorizza la stringa nel file app.config residente nel pogetto.

    Mi chiedevo se era possibile costruire un form all’interno del progetto dove posizionare un bottone che comanda l’Openfiledialog per la ricerca del database e la stringa di connessione sostituirla a quella presente nel file config già esistente con un apposito codice che ahimè non conosco.

    Anticipatamente ringrazio.

    Mi piace

  2. Ciao Maurizio

    > Interessante articlo!

    Grazie! 🙂

    Veniamo al quesito.
    L’apertura del file di database è indicata quando hai un (scusa il gioco di parole!) database su file, come un mdb di Access, ma non va tanto bene per un database di SQL Server. Potresti accedere anche via file, ma l’approccio migliore è quello di utilizzare i servizi di rete di SQL Server. In questo caso dovresti individuare il servizio di rete di SQL Server (quindi il nome del server o l’IP, la porta ecc.).
    Se sei l’amministratore del server dove è installato SQL Server (o se puoi chiedere all’amministratore) non dovresti avere problemi a conoscere i parametri di connessione. In altri casi bisogna fare una ricerca dei servizi attivi e, se non ricordo male, è necessario che sia attivo il servizio SQL Browser …

    In quanto alla stringa di connessione memorizzata nelle impostazioni: hai già letto anche questo mio post?:

    https://deghetto.wordpress.com/2008/02/10/vbnet-salvare-la-stringa-di-connessione-al-database/

    Fa riferimento a un articolo su CodeProject (in inglese) che fornisce appunto delle funzioni per salvare e recuperare la stringa di connessione dalle impostazioni dell’applicazione.
    Prova a vedere se questo può risolvere il tuo problema, altrimenti fammi sapere.

    > Anticipatamente ringrazio.

    Di nulla!
    Se non trovi una soluzione fammi un fischio 🙂

    Mi piace

  1. Pingback: VB 2005/2008: connessione a database con ADO.NET 2.0 « Blog di Mario De Ghetto

  2. Pingback: [ADO.NET 2.0] Connessione a database con un file .UDL « VB & .NET - Mario De Ghetto

  3. Pingback: #44: [ADO.NET 2.0] Connessione a database con un file .UDL « VB & .NET - Mario De Ghetto

  4. Pingback: 2010 in review « VB & .NET – Mario De Ghetto

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: