2009-09-16 18 views
5

Nella mia app WinForms, ho alcune caselle di testo in cui l'utente ha inserito alcuni dati. Voglio memorizzare i dati, ma non voglio usare un database. Nei miei giorni C++ in età della pietra, userei solo un .ini. In qualche modo, app.config non sembra il posto giusto dove archiviare questi dati, però.Come dovrei memorizzare i dati per utente in WinForms?

Quali sono le mie altre opzioni?

risposta

11

Direi che il file .config è il posto giusto. Assicurati di utilizzare l'area con scope User del file Settings.settings piuttosto che l'ambito dell'applicazione.

Questo funziona bene per tipi di dati semplici e quando si hanno valori fissi che dovranno essere salvati perché è necessario definire quali variabili si desidera memorizzare in fase di progettazione. Quindi, se le tue caselle di testo sono create dinamicamente e non sai che molti valori che devi memorizzare non sono molto utili.

Utilizzare IsolatedStorage potrebbe essere un'altra buona opzione. È possibile creare il proprio file in qualsiasi formato desiderato (mantenendo tutti i valori necessari) e memorizzarlo sul computer locale in "IsolatedStorage".

+0

Ancora migliore risposta! +1. –

6

È possibile creare una cartella da qualche parte sul disco e scrivere semplicemente un file in qualsiasi formato adatto (XML, testo normale, a scelta). Ad esempio, è possibile farlo sotto il percorso indicato da Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) o Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData).

+0

Io e te, pensiamo lo stesso. :-) +1 e buona risposta! –

3

Vorrei esaminare l'archiviazione isolata. È facile da configurare per utente. E poiché richiede solo un trust parziale, funzionerà per qualsiasi scenario di distribuzione.

Controllare questo introduction.

1

Creare un file .config o altro file di dati (ad esempio xml) nei dati dell'applicazione per l'utente specifico.

utilizzare system.environment.specialfolder per ottenere la cartella ApplicationData, aggiungere una sottocartella con il nome della società, all'interno di questa una sottocartella con il nome dell'applicazione, all'interno di questo file di dati per questo utente specifico. Quindi,

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\YourCompany\\YourApplication\\YourData.config" 
1

Credo che il posto giusto per archiviare le impostazioni utente in WinForms 2.0 sia nel file delle impostazioni (non nel file di configurazione). Here's un rapido articolo per la spiegazione.

2

A seconda di quante variabili/dati si sta cercando di salvare il file app.config/settings può essere il posto ideale.

Controllare la scheda Impostazioni nelle proprietà del progetto e notare che è possibile impostare sia Impostazioni applicazione che Impostazioni utente. Le impostazioni dell'applicazione influenzano l'intera applicazione. Le impostazioni dell'utente sono memorizzate per utente.

La sezione di app.config che contiene le impostazioni dell'utente verrà salvata nella directory dell'utente quando vengono salvate e reincorporate al riavvio dell'app.

Controllare this url per un'introduzione alla applicazione Impostazioni/utente su MSDN e anche this SO url per una domanda simile .:

Si potrebbe anche prendere in considerazione l'archiviazione dei file .ini vecchi familiari in un .ini per ogni utente verificando l'enumerazione delle cartelle speciali come da this url.

Problemi correlati