COMPILAR COM BANCO DE DADOS JUNTO

HPFS 23/06/2015 14:41:03
#448061
Olá a todos!
Finalizei hoje meu primeiro projeto em VB 2008 no qual possui um banco de dados em Access.
Minha dúvida é a seguinte: Quando vou compilar este programa, o banco de dados não vai junto na pasta Bin. Neste caso preciso que ele vá junto para para que o usuário realize seus cadastros.
Alguma sugestão para compilar o banco junto?
KURTGU 23/06/2015 14:53:58
#448064
Mude sua string indicando ao fica o banco exemplo Dim appPath As String = Application.StartupPath() depois e so jogar o [Ô]banco[Ô] pois acess nao e banco, dentro da pasta principal pronto aonde o projeto for executado ele sempre vai buscar na pasta do .exe....
ASHKATCHUP 23/06/2015 15:22:44
#448069
  • 1. Copie o banco de dados para dentro da pasta do teu projeto
  • 2. Adicione o arquivo de banco de dados ao teu projeto (siga as instruções abaixo)
  • 2.1 Dentro do Visual Studio, clique com botão direito no teu projeto, dentro da janela SOLUTION EXPLORER;
  • 2.2 Vá em ADD e em EXISTING ITEM;
  • 2.3 Localize o arquivo do banco de dados;
  • 3. Com o arquivo do banco de dados dentro do teu projeto, selecione-o na janela SOLUTION EXPLORER;
  • 4. Localize a propriedade COPY TO OUTPUT;
  • 5. Escolha
  • [Ô]Copy Always[Ô] ou [Ô]Copy if Newer[Ô], dependendo do que tu quer fazer;

    Imagens anexas exemplificando
    KURTGU 23/06/2015 18:03:57
    #448081
    Ou ao inves de fazer tudo isso ai... de cima e so muda a string de conexao para isso...

    Dim appPath As String = Application.StartupPath()
    Provider=Microsoft.ACE.OLEDB.12.0;Data Source= appPath & [Ô]C:\myFolder\myAccessFile.mdb[Ô]

    Ficaria algo parecido com isso...
    KERPLUNK 23/06/2015 19:55:48
    #448084
    Pense em um detalhe MUITO importante: Se você colocar o banco de dados também nas atualizações, você corre um grande risco de sobrepor o banco de dados do cliente. Pense nisso.
    ASHKATCHUP 23/06/2015 23:21:05
    #448088
    Citação:

    :
    Pense em um detalhe MUITO importante: Se você colocar o banco de dados também nas atualizações, você corre um grande risco de sobrepor o banco de dados do cliente. Pense nisso.



    Mas se ele utilizasse [Ô]Copy If Newer[Ô]? Desde que não altere o banco de dados [Ô]virgem[Ô], o banco do cliente não seria subscrito.
    Por outro lado, novos campos e tabelas terão que ser criados via código, mas isso é fácil de se fazer.
    ASHKATCHUP 23/06/2015 23:23:03
    #448089
    Citação:

    :
    Ou ao inves de fazer tudo isso ai... de cima e so muda a string de conexao para isso...

    Dim appPath As String = Application.StartupPath()
    Provider=Microsoft.ACE.OLEDB.12.0;Data Source= appPath & [Ô]C:myFoldermyAccessFile.mdb[Ô]

    Ficaria algo parecido com isso...



    Alterar a string de conexão é importante para deixar o acesso ao banco dinâmico. Porém, só isso não resolveria.

    Pelo que entendi, ele quer que o banco seja posto na pasta BIN ser enviado juntamente com o executável ao cliente. Por isso dei as instruções acima.
    HPFS 23/06/2015 23:43:13
    #448090
    Opa!
    Obrigado a todos pelas dicas.
    Antes de ler os comentários aqui, eu testei o seguinte:

    Duplo clique em app.config para abrir o código.
    Logo no inicio eu removi todo o endereço que apontava para o meu banco, deixando somente [Ô]nome_do_banco.accdb[Ô]
    Feito isso, salvei e depois copiei o meu banco para a pasta compilada - Bin.

    Com isso, o banco passou a ser executado junto com o programa. Testei em outros computadores e funcionou.

    Obrigado a todos que me ajudaram com suas respostas. Irei testar os outros métodos também.
    Valeu!

    Tópico encerrado , respostas não são mais permitidas