+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 10 su 10

parametrizzare app.config

  1. #1
    apteryx non è in linea Novello
    Salve a tutti,
    vorrei sapere come posso far leggere al file app.config "la strada" per aprire il db giusto in base alla scelta dell'utente. Posto il file:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      
      <configSections>
         </configSections>
       <connectionStrings>
                   <add name="prova1.My.MySettings.db_di__prova_1ConnectionString"
                connectionString="Data Source=C:\Users\Utente\Documents\db_xxxx\db_di _prova_1.sdf"
                    
                providerName="Microsoft.SqlServerCe.Client.3.5" />
        </connectionStrings>
        <startup>
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
        </startup>
    </configuration>
    
    Se cambio manualmente db_xxxx in db_yyyy funziona e accedo al db che voglio con i dati corretti, ma non ho trovato come poter inserire una variabile al posto di db_xxxx per poter cambiare db di lavoro con, ad esempio, un form di login che scriva l'info in file txt da far leggere al file app.config.
    Ho trovato un esempio sul web e l'ho modificato come segue
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="Mydir" value="Data Source=C:\Users\Utente\Documents\db_xxxx\db_di _prova_1.sdf" />
         </appSettings>
      <configSections>
         </configSections>
       <connectionStrings>
                   <add name="prova1.My.MySettings.db_di__prova_1ConnectionString"
                connectionString="Mydir"
                    
                providerName="Microsoft.SqlServerCe.Client.3.5" />
        </connectionStrings>
        <startup>
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
        </startup>
    </configuration>
    
    ma mi ritorna l'errore :"Impossibile inizializzare il sistema di configurazione" in pratica la stringa "db_di__prova_1ConnectionString" è vuota.

    Si possono passare parametri come :"c:\user\documents\ecc....." contenuti in file txt? e come? qualcuno ha già trovato esempi che si possono adattare?
    Grazie.

  2. #2
    Ferrari_and non è in linea Scolaretto
    Prova a vedre qui https://docs.microsoft.com/it-it/vis...t?view=vs-2019

    Sicuramente qualcuno del forum poi ti spiegherà meglio.
    Se fai ricerche anche in questo forum ci sono alcune discussioni interessanti

  3. #3
    Sgrubak ora è in linea Scribacchino
    Cito:
    Quote Originariamente inviato da _alka_ Visualizza il messaggio
    Il file .config non è fatto per essere modificato a runtime, anche perché di solito viene posto nella directory assieme al programma, dove generalmente non si hanno nemmeno i diritti di scrittura (senza acquisire i diritti amministrativi tramite UAC).

    Non è nemmeno comunque consigliato modificarlo a mano, motivo per cui non sono presenti classi nel framework adatte a questo scopo.

    Valuterei davvero una strada più consona.
    Era un consiglio in merito alla creazione di proprietà a runtime (link alla discussione), ma fidati: lascia perdere quel file. Non potendolo modificare, non riesci a renderlo dinamico.

    Penso che invece di salvare direttamente la stringa di connessione tra le proprietà, potresti salvare tra le Properties il nome del DB e poi, a runtime, creare la stringa di connessione appropriata in base alla scelta dell'utente. Sarà compito della form di login gestire le impostazioni dell'applicazione.

  4. #4
    apteryx non è in linea Novello
    Ho voluto ancora provare alcuni espedienti da apprendista stregone, ma nessuno ha funzionato ovviamente, dovrò utilizzare due pc diversi, per fortuna le aziende sono solo due.
    Grazie a tutti Al prossimo intoppo

  5. #5
    L'avatar di sistemista
    sistemista non è in linea Topo di biblioteca
    Non è chiaro quello che dici e vuoi fare all'utente per scegliere il db giusto...spega meglio che forse ci intendiamo...tanto per darti l'idea tu puoi avere quanti db vuoi ma esiste un metodo per la scelta di qualsiasi file,spiega meglio.
    ℹ️ Leggi di più su sistemista ...

  6. #6
    apteryx non è in linea Novello
    Chiedo scusa per l'assenza, mi ero rassegnata. Allora in pratica dovrebbe funzionare così: l'utente lancia il prog. compilato(es.: gestione1) e dovrebbe poter scegliere l'azienda su cui poter operare, e ogni azienda deve poter avere un proprio db contenente comunemente prodotti, clienti e fornitori. Questa scelta io non riesco ad inserirla da codice in visual basic 2010 o meglio, non so proprio che codice scrivere. Avevo un prog. che girava su W98 in Qbasic e non avevo questo problema, l'applicativo si apriva da qualunque posizione grazie alla path e per prima cosa l'utente sceglieva la directory di lavoro con i file, 1 dir per ogni azienda. Vorrei poter fare la stessa cosa con vb net 2010. Grazie!

  7. #7
    L'avatar di sistemista
    sistemista non è in linea Topo di biblioteca
    Quote Originariamente inviato da apteryx Visualizza il messaggio
    Chiedo scusa per l'assenza, mi ero rassegnata. Allora in pratica dovrebbe funzionare così: l'utente lancia il prog. compilato(es.: gestione1) e dovrebbe poter scegliere l'azienda su cui poter operare, e ogni azienda deve poter avere un proprio db contenente comunemente prodotti, clienti e fornitori. Questa scelta io non riesco ad inserirla da codice in visual basic 2010 o meglio, non so proprio che codice scrivere. Avevo un prog. che girava su W98 in Qbasic e non avevo questo problema, l'applicativo si apriva da qualunque posizione grazie alla path e per prima cosa l'utente sceglieva la directory di lavoro con i file, 1 dir per ogni azienda. Vorrei poter fare la stessa cosa con vb net 2010. Grazie!
    Ascola tesoro,il qbasic è roba arcaica,io ho capito cosa vorresti fare ma se tu non hai nozioni di programmazione,la vedo dura....il gestionale aziendale per come vuoi fare tu è complesso e poi se non sai che codice scrivere,lascia perdere...questo è un forum di programmatori che hanno anni di esperienza di programmazione e le soluzioni che chiedi tu non sono viste di buon gradimento,praticamente,la pappa pronta quì non esiste.non prenderla a male per la risposta,il nostro forum ha delle regole che devono essere rispettate.
    ℹ️ Leggi di più su sistemista ...

  8. #8
    L'avatar di orpo970
    orpo970 non è in linea Scolaretto
    Potresti utilizzare l'oggetto ConnectionStringBuilder o in maniera più semplice aggiungere il campo IDAzienda

  9. #9
    Quote Originariamente inviato da apteryx
    Salve a tutti,
    vorrei sapere come posso far leggere al file app.config "la strada" per aprire il db giusto in base alla scelta dell'utente.
    Per estrarre le connectionstrings dal file App.Config puoi utilizzare la Proprietà ConnectionStrings della Classe ConfigurationManager (ConfigurationManager.ConnectionStrings), quindi ti basta inserire più connectionstrings nel file App.Config, assegnando un nome univoco ad ogni connessione.

    Però, come ti è stato fatto notare nell’altra discussione, non è detto che avere più database sia la scelta migliore, potresti creare delle ridondanze inutili.

    Gibra ti aveva indicato di usare un identificativo Azienda da inserire in tutte le tabelle che devono avere una relazione con le Aziende.
    Perché hai scartato questa soluzione ?

    Riscontri forse problemi concettuali su come strutturare il database per gestire più Aziende con il relativo set merceologico di prodotti ? (In questo caso apri una nuova discussione nella sezione dei database per chiedere un consiglio)
    Ultima modifica di Fix; 24-04-2021 11:27 
    ℹ️ Leggi di più su Fix ...

  10. #10
    apteryx non è in linea Novello
    grazie Fix e Orpo970, vado a studiare e provare il link che mi avete consigliato, dovrebbe fare al caso mio, per quanto riguarda aggiungere il campo id azienda dovrei ricominciare praticamente da capo, inoltre mi sembra che un unico db per tutte le aziende diventi col tempo molto grande e forse ingestibile dato che spazia dalla contabilità generale alla produzione.
    Grazie per l'aiuto.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Parametrizzare una query
    Da gualtiero nel forum Visual Basic 6
    Risposte: 9
    Ultimo Post: 13-05-2011, 21:49
  2. [ACCESS 2007] Parametrizzare filtri di selezione records
    Da hawk50 nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 31-03-2010, 16:53
  3. Parametrizzare nome Form per ciclo
    Da dolcissimo nel forum Visual Basic 6
    Risposte: 21
    Ultimo Post: 18-09-2008, 14:15
  4. web.config
    Da massimo74rn nel forum ASP 3, ASP .Net
    Risposte: 6
    Ultimo Post: 17-07-2008, 18:10
  5. [ASP.Net]web config
    Da perla0279 nel forum ASP 3, ASP .Net
    Risposte: 7
    Ultimo Post: 02-03-2008, 20:44