Dies ist ein häufiges Szenario mit dateibasierten Datenbanken (oder angehängten Datenbankdateien).
Ihre Verbindungszeichenfolge verweist auf die Datenbank, ohne einen Pfad zu verwenden.
Das bedeutet, dass sich Ihre Datenbank in demselben Verzeichnis befindet, in dem Ihre Anwendung ausgeführt wird .
Sie haben keine Probleme beim Einfügen, Ändern oder Löschen von Daten, aber Sie verlieren alles, wenn Sie die App INNERHALB einer Visual Studio-Debug-Sitzung neu starten.
Wenn Sie sich jetzt Ihre Projektdateien ansehen, haben Sie wahrscheinlich die Datenbankdatei zwischen den anderen Dateien aufgeführt. Zwischen den Eigenschaften dieser Datenbankdatei sehen Sie die Eigenschaft Copy to the Output directory
und sein Wert auf Copy Always
gesetzt .
Dies bedeutet, dass jedes Mal, wenn Sie Ihre Anwendung aus der Visual Studio-Umgebung heraus neu starten, diese Datei aus dem Projektordner in das Ausgabeverzeichnis (normalerweise BIN\DEBUG oder BIN\x86\DEBUG) kopiert wird, aber dies zerstört die Datenbank, die beim Entfernen der vorherigen Ausführung verwendet wurde die eingefügten Daten geändert oder gelöscht
Ändern Sie die Eigenschaft Copy to Output Directory
auf Copy Never
oder Copy if Newer
Jedoch Copy If Newer
stellt ein weiteres Problem mit MS-Access dar. Wenn Sie die Datenbankdatei, die sich in Ihrem Projektverzeichnis befindet, mit Access oder über das Serververbindungsfenster von Visual Studio öffnen, wird die Datei sofort geändert, auch wenn Sie nichts ändern, und somit führt Copy If Newer die Kopie in das Ausgabeverzeichnis aus