Problema file

sabato 20 marzo 2010 - 12.26

andreadp Profilo | Junior Member

Salve a tutti, ho provato a cercare un po in giro...ma non sono rimasto soddisfatto dalle risposte.
Alla fine del mio progetto, devo creare (finalmente) l file di installazione.
Ora sarebbe importante riuscire a modificare (in base alla macchiana dove installo l'applicazione) la stringa di connessione?!??
Che metodi suggerite?!??
Andrea

freeteo Profilo | Guru

Ciao,
se devi farlo a codice (magari all'avvio dell'applicazione), io ti consiglierei di usare i "Settings", dove puoi usare un codice tipo:
Properties.Settings.Default.StringaDiConnessione = ... Properties.Settings.Default.Save();

ti lascio il link alla documentazione ufficiale:
http://msdn.microsoft.com/en-us/library/aa730869(VS.80).aspx

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

andreadp Profilo | Junior Member

Allora. Io vorrei cambiare la stringa di connessione a runtime ok, però senza toccare il codice. Vorrei cioè poterla cambiare dall'applicazione stessa...! Cosa mi proponete??'

Andrea

freeteo Profilo | Guru

>ok, però senza toccare il codice. Vorrei cioè poterla cambiare dall'applicazione stessa...!
non ho capito cosa intendi per "dall'applicazione stessa", puoi fare un esempio più dettagliato?
Cmq sia devi preparare il codice che la legga (presumo sia nel tuo app.config) in maniera dinamica, ma cmq 1po di codice deve essere eseguito per cambiarla...ma forse non ho capito bene cosa intendi.


Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

andreadp Profilo | Junior Member

E' semplice io voglio installare la mia applicazione in qualsiasi macchina. Ovviamente la stringa cambia da macchina a macchina... Io vorrei trovare un modo per cambiarla a runtime ma senza intervenire nel codice. Tipo ad esempio tramire un textbox o una cosa del genere che mi permetta di farlo nel momento in cui apro l'applicazione
Andrea

freeteo Profilo | Guru

Si ok, lo puoi fare con una maschera che appunto poi ti salvi i valori dei Settings, o modifichi l'app.config.
Quando un'app parte, viene eseguita la funzione "Main" che è l'entry-point dell'applicazione, nel Program.cs.

Altrimenti puoi farlo in fase di setup, modificando il pacchetti d'installer come spiegato qui:
http://blogs.dotnethell.it/freeteo/Far-apparire-una-Form-.net-durante-il-deploy-con-Windows-Installer__15332.aspx
così quando viene installata l'utente se la può configurare...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

andreadp Profilo | Junior Member

molto utile il link.
Non ho capito però questa parte:

"Dentro alla form poi ho usato la solita tecnica di sempre per fare gli step del "mio wizard" tramite il TabControl, gestendo il SelectedIndex, nascondendo le tab in alto dietro ad una label fatta diventare "header grafico" della form stessa."

Andrea

freeteo Profilo | Guru

Ciao,
quella frase significa che per simulare l'avanti indietro di un wizard in maniera "veloce", ho usato un tabcontrol.
In fase di design metto dentro i vari controlli che fanno parte dello step nelle varie tabPage, e poi da codice ho usato 2 bottoni per andare avanti-indietro che non fa altro che aumentare-diminuire il selectedIndex del tabcontrol appunto...niente di che, però per me è una tecnica agile che uso spesso.

ps: chiaramente le tab le nascondo, magari mettendole dietro ad una label, in modo che poi l'utente non ci possa cliccare...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

andreadp Profilo | Junior Member

Benissimo. Molto chiaro.
Un' altra domanda: in tutto ciò la stringa di connessione nelle proprietà deve essere di tipo stringa e "utente" ?!?! Oppure dichiarata proprio come stringa di connessione???
Andrea

freeteo Profilo | Guru

Ciao,
nelle proprietà devi metterla di tipo "utente" così puoi andare a sovrascriverla anche da codice se ti servisse.
Se la metti a livello applicazione, è in sola lettura nelle properties del progetto, ma puoi cmq andare a modificarla in maniera diretta tramite le classi "Config" e "ConfigurationManager" come ti accennavo prima, perchè loro di fatto sono in grado di andare direttamente sul file .config...

Poi chiaramente deve essere una stringa, tanto per te è una coppia "chiave-valore" che ti serve per darla in pasto alla tua DbConnection che usi nel codice.

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

andreadp Profilo | Junior Member

il problema è quando faccio la modifica da applicazione ad utente mi sballa tutto il dataset: non riesco più a modificarlo
Andrea

freeteo Profilo | Guru

Ciao,
perchè usi i dataset tipizzati...io cerco di non usarli mai se posso perchè sono veloci ma poco flessibili...
Cmq nel tuo caso, mi sà che devi lavorare con la classe Config come spiegato nel link che ti ho segnalato in uno dei post precedenti, in modo da agire direttamente sul file xml di config...ma questo prima che parta la form, nel Program.cs per intenderci per evutare che la connectio del dataset venga già istanziata prima della modifica della stringa di connessione...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

andreadp Profilo | Junior Member

ehmm non riesco a trovare il "link precedente"...!!!
Quindi in questo modo posso lasciare le setting così come sono quindi "application"?!?


Andrea
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5