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>