2009-09-16 11 views
5

En mi aplicación WinForms, tengo algunos cuadros de texto en los que el usuario ingresó algunos datos. Quiero almacenar los datos, pero no quiero usar una base de datos. En mis días de piedra en C++, solo usaría un .ini. De alguna manera, app.config no parece ser el lugar correcto para almacenar esta información.¿Cómo debo almacenar datos por usuario en WinForms?

¿Cuáles son mis otras opciones?

Respuesta

11

Yo diría que el archivo .config es el lugar correcto. Solo asegúrese de usar el área del alcance User del archivo Settings.settings en lugar del alcance de la aplicación.

Esto funciona bien para tipos de datos simples y cuando tiene valores fijos que será necesario guardar porque necesita definir qué variables desea almacenar en tiempo de diseño. Entonces, si sus cuadros de texto se crean dinámicamente y no conoce muchos valores que necesita almacenar, no es muy útil.

Usar IsolatedStorage podría ser otra buena opción. Puede crear su propio archivo en el formato que desee (manteniendo los valores que necesita) y almacenarlo en la máquina local en "IsolatedStorage".

+0

¡Mejor respuesta! +1. –

6

Puede crear una carpeta en algún lugar del disco y simplemente escribir un archivo en cualquier formato adecuado (XML, texto sin formato, a su elección). Podría, por ejemplo, hacer esto en el camino señalado por Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) o Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData).

+0

Tú y yo, pensamos lo mismo. :-) +1, y buena respuesta! –

3

Me gustaría ver en el almacenamiento aislado. Es fácil de configurar por usuario. Y dado que solo requiere confianza parcial, funcionará para cualquier escenario de implementación.

Compruebe esto introduction.

1

Cree un .config u otro archivo de datos (por ejemplo, xml) en los datos de la aplicación para el usuario específico.

use system.environment.specialfolder para obtener la carpeta ApplicationData, agregue una subcarpeta con el nombre de su empresa, dentro de esta una subcarpeta con su nombre de aplicación, dentro de este su archivo de datos para este usuario específico. Por lo tanto,

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

Creo que el lugar adecuado para almacenar la configuración del usuario en WinForms 2.0 estaría en el archivo de configuración (no en el archivo de configuración). Here's un artículo rápido para la explicación.

2

Dependiendo de la cantidad de variables/datos que desee guardar, el archivo app.config/settings puede ser el lugar ideal.

Consulte la pestaña Configuración en las propiedades del proyecto y tenga en cuenta que puede establecer tanto la configuración de la aplicación como la del usuario. La configuración de la aplicación afecta a toda la aplicación. La configuración del usuario se almacena por usuario.

La sección de la aplicación.config que contiene la configuración del usuario se guardará en el directorio de usuarios cuando se guarden y se reincorporen cuando reinicien la aplicación.

Comprobar this url para una introducción a la configuración/usuario de la aplicación en MSDN y también this SO url para una pregunta similar .:

También podría mirar en el almacenamiento de sus viejos archivos .ini familiares en un ini por el usuario por el control de la enumeración Carpetas especiales según this url.

Cuestiones relacionadas