Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Cambiare connectionstring dell'app.config a run time
domenica 23 settembre 2012 - 21.15
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
DomA
Profilo
| Expert
537
messaggi | Data Invio:
dom 23 set 2012 - 21:15
Salve,
so che è problema che è stato discusso decine di volte ma, non sono riuscito a trovare una valida soluzione.
In pratica ho la necessità di riuscire a cambiare connectionstring dell'app.config a run time.
In parole povere mi serve una classe che permetta all'utente, attraverso una finestra di dialogo, di riuscire a settare la suddetta connectionstring.
Grazie in anticipo.
----------------------------------------------------------------------------------------
http://www.infomidia.it
Domenico
pieroalampi
Profilo
| Expert
817
messaggi | Data Invio:
lun 24 set 2012 - 01:16
Proprio questa sera ho fatto una sezione per le conf di un software utilizzando i my. Settings non ho provato con la connection string ma in ogni caso dovresti trasformare la stringa da applicazione ad utente poi assegni un valore dal form e lo salvi con es. my.settings.save(), ora scrivo dal telefono ma domani se la cosa non è' chiara ti posto tutto il codice ok??? In ogni caso ripeto non ho provato con la stringa di tipo applicazione ma solo con quella tipo utente, fammi sapere come va
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
DomA
Profilo
| Expert
537
messaggi | Data Invio:
lun 24 set 2012 - 08:33
Ciao,
magari se posti il codice è meglio. Il mio problema è che mi dice che i settings sono ReadOnly
A presto,
--------------------------------------
http://www.infomidia.it
Domenico
pieroalampi
Profilo
| Expert
817
messaggi | Data Invio:
lun 24 set 2012 - 09:57
si certo che ti dice che è solo in lettura appunto per questo ti dicevo di cambiare l'ambito che nel tuo caso è di tipo applicazione, prova a cambiarlo o a farne uno nuovo in ambito utente e prova a cambiare quello, per essere più chiaro: crea la nuova stringa cambia l'esistente in ambito utente nel valore metti la stringa di connessione nell'esempio la chiamo ConnectionString, poi qui il codice:
nelle impostazioni cambio il tipo e metto string, ambito metto utente e poi nel valore scrivo la stringa di connessione (se modifichi quella che c'era prima ti conviene copiarla prima perche vs appena cambi da st di connessione a string ti visualizza il file xml)
crea una textbox chiamata TxtBoxSqlConn
nel load del form metti:
TxtBoxSqlConn.Text = My.Settings.ConnectionString
poi crei una tasto salva:
My.Settings.ConnectionString= TxtBoxSqlConn
My.Settings.Save()
e via cosi, prova e fammi sapere
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
DomA
Profilo
| Expert
537
messaggi | Data Invio:
lun 24 set 2012 - 12:42
Ciao,
ho già provato questo metodo, ma non va.
L'errore è qui:
My.Settings.ConnectionString = TxtBoxSqlConn ---> ConnectionString è ReadOnly
Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.
http://www.infomidia.it
Domenico
pieroalampi
Profilo
| Expert
817
messaggi | Data Invio:
lun 24 set 2012 - 13:07
nelle impostazioni hai cambiato l'ambito??? da connection string ad utente??
mandami la mail che ti invio qualcosa
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
DomA
Profilo
| Expert
537
messaggi | Data Invio:
lun 24 set 2012 - 16:16
>>nelle impostazioni hai cambiato l'ambito?
vergognosamente non l'avevo fatto
campiando Type in string e Scpoe in User funziona tutto.
A presto
Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.
http://www.infomidia.it
Domenico
pieroalampi
Profilo
| Expert
817
messaggi | Data Invio:
lun 24 set 2012 - 16:48
mi fa piacere sia andato a posto ciao
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
DomA
Profilo
| Expert
537
messaggi | Data Invio:
lun 24 set 2012 - 17:12
Grazie.
Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.
http://www.infomidia.it
Domenico
Vinsent
Profilo
| Senior Member
268
messaggi | Data Invio:
mar 25 set 2012 - 21:19
Usare my.settings è la soluzione più semplice ed immediata ma tieni presente che è legata al nome del programma, al percorso ed altri fattori che non ricordo*...in pratica si crea un file "user.config" nella cartella appdata\local\"nome programma"\"ash"\"versione" dell' utente, tale file è un semplice txt con il testo formattato in xml ed il percorso completo è un ash dei fattori di sopra.
Se ad esempio aggiorni il programma e l' exe cambia nome (es." prog v1" a "prog v2") le impostazioni "utente" vanno perse.
Questo è un esempio di un mio vecchio programma:
421x338
43Kb
Dipende da come distribuisci/aggiorni il tuo programma, con clickonce* esistono le funzioni adatte per l' importazione*, mentre io ero riuscito a farlo indicando l' exe da cui importare il file user.config.
Alla fine io ho preferito abbandonare my.settings per dei file xml creati in un percorso "fisso" che leggo e scrivo senza troppi sbattimenti...con la classe dataset.
*non ho voglia di rileggere tutto ma dovrebbe essere scritto in questo link dei miei bookmarks:
http://msdn.microsoft.com/it-it/library/cc185092.aspx#ID0EMF
pieroalampi
Profilo
| Expert
817
messaggi | Data Invio:
mer 26 set 2012 - 10:19
la cosa è interessante, praticamente se cambi nome al programma va tutto perso? ma in che caso cambi il nome?
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
Vinsent
Profilo
| Senior Member
268
messaggi | Data Invio:
mer 26 set 2012 - 20:11
>la cosa è interessante, praticamente se cambi nome al programma
>va tutto perso? ma in che caso cambi il nome?
Nel mio caso, quando faccio una modifica al programma prendo l' exe dalla cartella debug e lo rinomino con un progressivo per identificare la versione esempio "Programma 1.0.exe", "Programma 1.1.exe", ecc...il discorso del nome mi serve anche per utilizzare il metodo di aggiornamento che ho "inventato"...
Anche non cambiando nome ma modificando la versione direttamente da VS si ha lo stesso effetto, nel link a MSDN sopra c' è un paragrafo che spiega come importare i settings dalla versione precedente, se però creo un nuovo progetto ad esempio per rifare lo stesso programma da zero l' importazione via codice non è più utilizzabile.
Un copia/incolla del file "user.config" non va bene perchè all' interno contiene i riferimenti all' exe che lo ha generato.
L' unica soluzione che avevo trovato era rintracciare il file della versione precedente, leggerlo nodo x nodo e assegnare il valore al settings della nuova versione:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=39387
Nel programma dell' immagine sopra avevo circa 90 settings...una tragedia...quando ho avuto necessità di leggere/salvare dei dati mi sono orientato sugli xml e da li ho abbandonato my.settings.
Alla fin fine è come se utilizzassi i vecchi .ini.
ciao
Torna su
Stanze Forum
Elenco Threads
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 !