Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Datenbankdaten für den C#-Windows-Anwendungszugriff bleiben beim Schließen nicht bestehen

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