CONECTAR AO BANCO DE DADOS SQL VISUAL STUDIO 2017

EBOOKREVENDA 26/09/2017 11:00:48
#476776
Olá, criei um software com acesso a um (localDB) denominado Databaser3.mdf veja minha sting de conexão:
 
Dim local As String = System.IO.Path.Combine(Application.StartupPath, [Ô]Database3.mdf[Ô])
Dim myConnectionString As String = [Ô]Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=[Ô] & local & [Ô];Integrated Security=True;Connect Timeout=50[Ô]
Dim connection As New SqlConnection(myConnectionString)


e dentro do Form_load do aplicativo faço a conexão ao banco de dados dessa forma:
   [ô]abrir conexão com o banco de dados
connection.Open()


A questão é que no computador local onde desenvolvi o programa tudo roda q é uma beleza, porem em outra maquina a conexão não é realizada. e segue a mensagem de erro :

Additional information: Erro de rede ou específico à instância ao estabelecer conexão com o SQL Server. O servidor não foi encontrado ou não estava acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. (provider: SQL Network Interfaces, error: 52 - Não é possível localizar uma instalação de Local Database Runtime. Verifique se o SQL Server Express está instalado corretamente e se o recurso Tempo de Execução de Banco de Dados Local está habilitado.)

Informações adicionais: criei um setup do aplicativo e inclui no mesmo o arquivo .mdf então o mesmo esta corretamente na pasta do aplicativo então esse não seria o motivo do erro. na maquina cliente não tem nenhuma instalação de sql server ... será que esse seria o problema e como resolver pois não tenho como instalar o sql server na maquina de cada cliente que adquirir o software? tenho que instalar algo na maquina destino para funcionar? citando que o Banco de dados é local, somente preciso de acesso ao arquivo para atualizar alguns dados e armazenar outros... já alterei coisas como Timeout=50 mais nada adianta.
OCELOT 26/09/2017 11:04:40
#476777
LocalDB só funciona se tiver o SQL Server Express instalado no PC, e tem que ser a versão Express.
EBOOKREVENDA 26/09/2017 11:29:32
#476779
Citação:

:
LocalDB só funciona se tiver o SQL Server Express instalado no PC, e tem que ser a versão Express.


Então perdi todo o tempo de programação, ou teria como migrar isso para alguma outra forma que funcione localmente ?
LVFIOROT 26/09/2017 13:13:32
#476784
Acho que poderia ser esse Microsoft SQL Server Compact 4.0, que deve ser distribuido junto a aplicação


https://www.microsoft.com/pt-br/download/details.aspx?id=17876

LVFIOROT 26/09/2017 13:16:05
#476785
para nao mudar nada...

https://stackoverflow.com/questions/23320013/how-to-install-localdb-separately

mais novo
https://www.sqlshack.com/install-microsoft-sql-server-express-localdb/
PLUGSOFTSM 26/09/2017 15:17:02
#476788
Olha só amigo.... Sofri muito com esse problema

A questão é configurar certo o SQL que vai funcionar certinho....
Basicamente são 3 coisas que vc tem que fazer....

1 - Instalar o sqlserver express em uma máquina que será o servidor.
2 - Configurar esse sql server para ser acessado por outras máquinas(estações) que podem ser na mesma rede ou em outra rede (acesso remoto)
3 - Configurações necessárias no Sevidor A - Ip Fixo (Pois as conexões nas estações funcionam melhor via IP);
B - Desativar o Firewal do Windos;
C - Liberar uma porta para o Sql Server no Firewall do Windows (A porta padrão do SQL é a 1433, porém recomendo usar outra, pois existem muitos modens que ao serem reiniciados derrubam as portas padrão se vc tentar um acesso externo sem uma porta paga - Eu convencionei Usar a porta 1385)

Depois de instalado o SQL acesse o SQL Configuration Manager e configure o sql server para o ambiente de rede....


Depois de configurado, reinicie os serviços do sql server

Use a seguinte string de conexão e vai tudo funcionar corretamente

[Ô]Data Source=IPServidor,PortaFirewall;Initial Catalog=Nome_do_Banco;User ID=UsuarioBD;Password=SenhaBD;[Ô]
onde: IPServidor é o IP atribuído ao servidor ;
PortaFirewall é a porta liberada no Firewall
Nome_do_Banco é o nome atribuído ao Banco de dados
UsuarioBD é o nome do usuário configurado para o banco de dados
SenhaBD é a senha atribuída ao usuário do banco de dados

Reescrevendo a string acima ficaria algo assim

[Ô]Data Source=192.168.1.55,1385;Initial Catalog=DataBase3;User ID=EBOOKREVENDA;Password=101010;[Ô]

Se seguir essas dicas te garanto que funcionará 100%....
Espero que isso te ajude....

EBOOKREVENDA 27/09/2017 10:28:15
#476803
Citação:

:
Olha só amigo.... Sofri muito com esse problema

A questão é configurar certo o SQL que vai funcionar certinho....
Basicamente são 3 coisas que vc tem que fazer....

1 - Instalar o sqlserver express em uma máquina que será o servidor.
2 - Configurar esse sql server para ser acessado por outras máquinas(estações) que podem ser na mesma rede ou em outra rede (acesso remoto)
3 - Configurações necessárias no Sevidor A - Ip Fixo (Pois as conexões nas estações funcionam melhor via IP);
B - Desativar o Firewal do Windos;
C - Liberar uma porta para o Sql Server no Firewall do Windows (A porta padrão do SQL é a 1433, porém recomendo usar outra, pois existem muitos modens que ao serem reiniciados derrubam as portas padrão se vc tentar um acesso externo sem uma porta paga - Eu convencionei Usar a porta 1385)

Depois de instalado o SQL acesse o SQL Configuration Manager e configure o sql server para o ambiente de rede....


Depois de configurado, reinicie os serviços do sql server

Use a seguinte string de conexão e vai tudo funcionar corretamente

[Ô]Data Source=IPServidor,PortaFirewall;Initial Catalog=Nome_do_Banco;User ID=UsuarioBD;Password=SenhaBD;[Ô]
onde: IPServidor é o IP atribuído ao servidor ;
PortaFirewall é a porta liberada no Firewall
Nome_do_Banco é o nome atribuído ao Banco de dados
UsuarioBD é o nome do usuário configurado para o banco de dados
SenhaBD é a senha atribuída ao usuário do banco de dados

Reescrevendo a string acima ficaria algo assim

[Ô]Data Source=192.168.1.55,1385;Initial Catalog=DataBase3;User ID=EBOOKREVENDA;Password=101010;[Ô]

Se seguir essas dicas te garanto que funcionará 100%....
Espero que isso te ajude....


Olá, grato pela resposta porem não sei se entendeu bém, a questão é que eu não terei um servidor remoto onde vou deixar o banco de dados eu quero que ele fique na maquina onde o cliente vai instalar a aplicação somente isso, Localmente. é ate agora pelo que vi a unica opção é fazer isso instalando o sql server. Antes do banco de dados eu usava uma estrutura onde tudo era salvo em arquivos .txt, por exemplo a cada novo dado que surgia eu salvava no arquivo de texto porem como são muitos dados que vão surgindo ao decorrer da execução do programa sempre dava algum problema e em muitos casos eu ate perdia esse banco de dados porque os arquivos txt se corrompiam, creio que por não serem adequados e o manuseio ser mais complicado de se tratar. Por isso criei o banco de dados diretamente pelo Visual studio, achei que o microsoft net Framwork cuidasse de tudo ou ate mesmo pelo fato de poder criar direto pelo visual studio as tabelas achei que ja fosse de alguma forma ficar vinculado ao software porem como sou novato na questão de banco de dados para minha surpresa me deparei com essa questão que ao final vai deixar meu programa mais complexo devido ao fato de ter que instalar SQL, [Ô]instalar algo a mais na maquina de um cliente sempre é um problema ainda mais levando em conta que é ele quem vai ter que fazer isso[Ô] O que eu preciso então é de uma solução onde eu possa arquivar os meus dados de forma semelhante a um banco de dados onde eu não tenha esse problema de ficar perdendo meus dados por ter arquivos corrompidos durante o processo de salvamento, algo como tabelas ou algo assim, e também onde eu não tenha que instalar algo a mais no computador do cliente pois isso dificulta as coisas. Agradeço a todas as respostas e estou dando uma olhada em todos os links aqui pra ver se acho algo do tipo.
LUIS2014 27/09/2017 10:56:57
#476807
Resposta escolhida
Use o SQLite , vai resolver seu problema.
PLUGSOFTSM 01/10/2017 21:50:59
#476893
Eu só não consegui entender uma coisa.
Cada cliente vai ter só um PC rodando o programa? Se sim, vc pode usar um código pra instalar e configurar o sql server automaticamente pela sua aplicação.... Se Não, vc não tem como fugir de um servidor...

Uma dica: Se for rodar em mais de uma máquina, e quer rodar em rede pode usar uma banco de dados que para mim não é banco de dados chamado access... Ele é fácil de manusear e resolve teu problema

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