Estou dando um esclarecimento procurando sanar um problema que alguns usuários me relataram sobre o artigo :VB.NET 2005 - Criando uma aplicação completa : Locadora de Filmes.
Alguns usuários relataram que após realizarem a inclusão/alteração exclusão de dados quando fechavam a aplicação e abriam novamente tudo era perdido não havendo dado algum nas tabelas de dados da aplicação.
Após pesquisar sobre o fato acabei encontrando uma possível explicação para o fato em uma lista de discussão. Vamos a ela:
Quando você realiza uma conexão com um banco de dados SQL Server usando o Visual Basic 2005 através do Server Explorer e então cria seu Data Source usando aquela conexão, o VB 2005 irá exibir uma janela de diálogo com a seguinte mensagem:
"The connection you selected uses a local data file that is not in the current project. Would you like to add the file to your project and modify the connection ?"
Se você confirmar e clicar no botão Yes, ao compilar(Build) sua aplicação o VB 2005 irá copiar o arquivo .mdf para o diretório de saída da aplicação onde fica o arquivo .EXE da mesma. Só que tem um pequeno detalhe : a conexão em tempo de projeto, no Server Explorer, ainda estará apontando para o arquivo .mdf original e não para a cópia que esta na pasta de saída da aplicação. Este comportamento simplifica o processo de compilação da aplicação mas tem um efeito colateral desagradável que abaixo você descobrirá...
Agora você pode rodar a sua aplicação e incluir, alterar e excluir registros para alterar o conteúdo do arquivo .mdf que reside na pasta de saída da sua aplicação. Contudo , após fazer isto, se você verificar o conteúdo do arquivo .mdf, via Server Explorer, você não verá as alterações feitas, pois, você estará olhando para o arquivo .mdf original e não para o arquivo que foi copiado para a pasta de saída da sua aplicação.
Desta forma você pensa que o seu código não esta efetuando as alterações, pois esta olhando para o arquivo original e não para o arquivo que a aplicação esta usando como arquivo de trabalho.
Tem outro problema: a próxima vez que você compilar (Build) a sua aplicação o VB 2005 irá copiar o arquivo original .mdf para a pasta de saída de sua aplicação novamente,e , adivinha ???? Vai matar o seu arquivo atualizado .mdf; pronto ! você voltou a estaca zero, e, se repetir o processo vai ficar perdido como um 'cachorro correndo atrás do próprio rabo' sem saber onde esta o problema.
| Se você olhar para o arquivo .mdf
na janela Server Explorer irá verificar que a propriedade : Copy to Output Directory tem o valor padrão definido como : Copy Always Desta forma o arquivo original sempre será copiado, após a compilação, para a pasta de saída da sua aplicação, e, o seu arquivo de trabalho será sobrescrito, e, você perderá todas as alterações feitas.
|
![]() |
Com isto solucionamos o mistério dos dados
perdidos ou não atualizados. Francamente...![]()
Depois dessa, até breve...![]()
José Carlos Macoratti