Il s'agit d'un scénario courant avec une base de données basée sur des fichiers (ou des fichiers de base de données joints)
Votre chaîne de connexion fait référence à la base de données sans utiliser de chemin.
Cela signifie que votre base de données se trouve dans le même répertoire où votre application s'exécute .
Vous n'avez aucun problème pour insérer, modifier ou supprimer des données, mais vous perdez tout lorsque vous redémarrez l'application depuis l'INTÉRIEUR d'une session de débogage Visual Studio.
Maintenant, si vous regardez vos fichiers de projet, vous avez probablement le fichier de base de données répertorié entre les autres fichiers. Entre les propriétés de ce fichier de base de données, vous remarquerez la propriété Copy to the Output directory
et sa valeur définie sur Copy Always
.
Cela signifie que chaque fois que vous redémarrez votre application depuis l'environnement Visual Studio, ce fichier est copié du dossier du projet vers le répertoire de sortie (généralement BIN\DEBUG ou BIN\x86\DEBUG), mais cela détruit la base de données utilisée lors de l'exécution précédente en supprimant les données insérées modifiées ou supprimées
Modifiez la propriété Copy to the Output directory
à Copy Never
ou Copy if Newer
Cependant Copy if Newer
présente un autre problème avec MS-Access. Si vous ouvrez le fichier de base de données situé dans votre répertoire de projet à l'aide d'Access o à l'aide de la fenêtre de connexion au serveur de Visual Studio, le fichier est immédiatement modifié même si vous ne modifiez rien et donc la copie si plus récente exécutera la copie dans le répertoire de sortie