Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Os dados do banco de dados de acesso ao aplicativo do Windows C # não persistem no fechamento


Este é um cenário comum com banco de dados baseado em arquivo (ou arquivos de banco de dados anexados)
Sua string de conexão se refere ao banco de dados sem usar nenhum caminho.
Isso significa que seu banco de dados está localizado no mesmo diretório em que seu aplicativo é executado .
Você não tem nenhum problema para inserir, modificar ou excluir dados, mas perde tudo quando reinicia o aplicativo DENTRO de uma Sessão de Depuração do Visual Studio.

Agora, se você observar seus arquivos de projeto, provavelmente terá o arquivo de banco de dados listado entre os outros arquivos. Entre as propriedades deste arquivo de banco de dados você notará a propriedade Copy to the Output directory e seu valor definido como Copy Always .

Isso significa que toda vez que você reiniciar seu aplicativo de dentro do ambiente do Visual Studio, esse arquivo é copiado da pasta do projeto para o diretório de saída (geralmente BIN\DEBUG ou BIN\x86\DEBUG), mas isso destrói o banco de dados usado na execução anterior, removendo os dados inseridos modificados ou excluídos

Altere a propriedade Copy to the Output directory para Copy Never ou Copy if Newer

No entanto, Copy If Newer apresenta outro problema com o MS-Access. Se você abrir o arquivo de banco de dados localizado no diretório do seu projeto usando o Access o usando a janela Server Connection do Visual Studio o arquivo será modificado imediatamente também se você não alterar nada e, portanto, o Copy If Newer executará a cópia para o diretório de saída