sql >> Base de Datos >  >> RDS >> Mysql

Los datos de la base de datos de acceso a la aplicación de Windows C# no persisten al cerrar

Este es un escenario común con una base de datos basada en archivos (o archivos de base de datos adjuntos)
Su cadena de conexión se refiere a la base de datos sin usar ninguna ruta.
Esto significa que su base de datos está ubicada en el mismo directorio donde se ejecuta su aplicación .
No tiene ningún problema para insertar, modificar o eliminar datos, pero pierde todo cuando reinicia la aplicación desde DENTRO de una sesión de depuración de Visual Studio.

Ahora, si observa los archivos de su proyecto, probablemente tenga el archivo de la base de datos en la lista entre los otros archivos. Entre las propiedades de este archivo de base de datos, notará la propiedad Copy to the Output directory y su valor establecido en Copy Always .

Esto significa que cada vez que reinicia su aplicación desde dentro del entorno de Visual Studio, ese archivo se copia de la carpeta del proyecto al directorio de salida (generalmente BIN\DEBUG o BIN\x86\DEBUG), pero esto destruye la base de datos utilizada en la ejecución anterior eliminando los datos insertados modificados o eliminados

Cambie la propiedad Copy to Output Directory para Copy Never o Copy if Newer

Sin embargo, Copy if Newer presenta otro problema con MS-Access. Si abre el archivo de la base de datos ubicado en el directorio de su proyecto usando Access o usando la ventana Conexión del servidor de Visual Studio, el archivo se modifica inmediatamente también si no cambia nada y, por lo tanto, Copiar si es más nuevo ejecutará la copia en el directorio de salida. /P>