Mysql
 sql >> Database >  >> RDS >> Mysql

I dati del database di accesso alle applicazioni Windows C# non persistono alla chiusura

Questo è uno scenario comune con database basato su file (o file di database allegati)
La stringa di connessione fa riferimento al database senza utilizzare alcun percorso.
Ciò significa che il database si trova nella stessa directory in cui viene eseguita l'applicazione .
Non hai problemi a inserire, modificare o eliminare i dati ma perdi tutto quando riavvii l'app dall'INTERNO di una sessione di debug di Visual Studio.

Ora, se guardi i tuoi file di progetto, probabilmente hai il file di database elencato tra gli altri file. Tra le proprietà di questo file di database noterai la proprietà Copy to the Output directory e il suo valore impostato su Copy Always .

Ciò significa che ogni volta che si riavvia l'applicazione dall'interno dell'ambiente Visual Studio quel file viene copiato dalla cartella del progetto nella directory di output (solitamente BIN\DEBUG o BIN\x86\DEBUG) ma questo distrugge il database utilizzato nell'esecuzione precedente rimuovendo i dati inseriti modificati o cancellati

Modificare la proprietà Copy to the Output directory su Copy Never o Copy if Newer

Tuttavia Copy if Newer presenta un altro problema con MS-Access. Se apri il file di database che si trova nella directory del tuo progetto usando Access o usando la finestra Connessione al Server di Visual Studio il file viene subito modificato anche se non modifichi nulla e quindi Copy If Newer eseguirà la copia nella directory di output