none
Problemas com conexão com BD RRS feed

  • Pergunta

  • Fala pessoas blz?

    Estou com um probleminha, desenvolvi uma aplicação com BD SQL, este projeto esta dividido em camadas, uma delas a Dados. Anteriormente havia criado um post aqui referente a como fazer para centralizar em um único lugar a connectionString e com uma das resposta consegui e na máquina que desenvolvo funcionou perfeitamente, porem agora criei um setup com o InstallShild e fui instalar na máquina, antes claro eu instalei o SQLEXPRESS 2012 baixado daqui: http://www.microsoft.com/pt-br/download/details.aspx?id=29062

    Depois instalei o programa na máquina na string de conexão eu fiz as modificações: 

    Data Source=.\SQLEXPRESS;Initial Catalog=BancoTeste;Integrated Security=True

    Agora o problema: Todas as funcionalidades que envolvem banco de dados me trazer um exception na tela dizendo que houve uma exceção sem tratamento no programa, e não sei mais oque fazer.

    Quando eu for instalar o programa em outro pc oque devo levar e como devo instalar e configurar o programa?

    Vlw.

    quinta-feira, 22 de maio de 2014 14:53

Respostas

  • Eu não posso te ajudar quanto ao Installshild, eu não o utilizo.

    Eu crio o projeto asp.net em minha casa, faço o publish para uma pasta do meu computador.

    No cliente, coloco numa pasta qualquer, crio o site no IIS (internet information service). criando primeiro o aplication pool.

    Para apontar para a base de dados, eu aponto no web.config conforme te falei acima.

    O SQL express tem uma ferramenta de administração sim. Vou passar o endereço para baixa-la. Chama-se ADV. http://www.microsoft.com/pt-br/download/details.aspx?id=1842

    Outra coisa que pode ser feita é:

    crie um arquivo txt na tela desktop.  (observação: garanta que o sistema exibe extensão de arquivos conhecidos)

    renomeie o arquivo.txt  para arquivo.udl

    confirme a mudança. Abrindo este arquivo, ele abre uma ferramenta de conexão com o banco de dados - com o nome na caption "DATA LINK PROPERTIES".

    Se você conseguir usa-la, conectando-se com o banco, você pode abrir o arquivo editando que a conexão com o banco estará dentro dele.

    • Marcado como Resposta Jhonathan Maia sexta-feira, 23 de maio de 2014 20:44
    sexta-feira, 23 de maio de 2014 20:29
  • Quando você utiliza "Integrated Security=True" indica que o Windows vai usar as atuais credenciais da conta do Windows para autenticar.  exemplo: domínio\nomeusuario.

    Para que isso ocorra, normalmente você adiciona o usuário de rede no Security\Login do servidor sql.

    Utilize um usuário com id e senha seus. Crie o usuário no servidor sql.

    altere sua connection string para algo assim:

    <add name="Connection_String" connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=vendas;User ID=meuusuario;Password=senhateste@123" providerName="System.Data.SqlClient" /> 

    lembrando que (local)\SQLEXPRESS é o mesmo que  .\SQLEXPRESS.

    Somente uma observação.

    você deverá instalar o banco de dados com os dois modos de autenticação para criar usuário com autenticação pelo SQL.

    Para você distribuir, existem varias formas. Se for você mesmo à instalar, crie um script para gerar a base de dados e o usuário no novo servidor. O script será executado com credenciais de usuário ADM no SQL e criará seu banco e usuário sem problemas.

    Espero que te ajude.

    quinta-feira, 22 de maio de 2014 16:21
  • Jose Geraldo, gostei bastante desta resposta, hoje mesmo tentarei fazer desta forma, já para adiantar, eu não sou um grande especialista de SQL... Este script que cria o banco e as tabelas até tenho noção de como fazer(olhando alguns tutoriais fica facinho) agora esta questão de criar o usuário ai ja não faço ideia de como é feito teria algum tutorial que ensina isto?

    E outra coisa, algo que me traz muita dúvida é, normalmente quando baixamos um programa da net, é só clicar em executar e Next, Next, Next e pronto tudo funcionando perfeitamente, já procurei diversas vezes mais nunca achei um tutorial ou artigo que disse como isto é feito, gostaria de fazer algo assim, para alem de poupar tempo quando for instalar para o usuário ficar mais simples caso precise reinstalar, repara, etc....Saberia me informar onde encontro exemplos de como fazer algo assim no VS 2012 e SQL?

    Abraço.

    quinta-feira, 22 de maio de 2014 16:53

Todas as Respostas

  • Quando você utiliza "Integrated Security=True" indica que o Windows vai usar as atuais credenciais da conta do Windows para autenticar.  exemplo: domínio\nomeusuario.

    Para que isso ocorra, normalmente você adiciona o usuário de rede no Security\Login do servidor sql.

    Utilize um usuário com id e senha seus. Crie o usuário no servidor sql.

    altere sua connection string para algo assim:

    <add name="Connection_String" connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=vendas;User ID=meuusuario;Password=senhateste@123" providerName="System.Data.SqlClient" /> 

    lembrando que (local)\SQLEXPRESS é o mesmo que  .\SQLEXPRESS.

    Somente uma observação.

    você deverá instalar o banco de dados com os dois modos de autenticação para criar usuário com autenticação pelo SQL.

    Para você distribuir, existem varias formas. Se for você mesmo à instalar, crie um script para gerar a base de dados e o usuário no novo servidor. O script será executado com credenciais de usuário ADM no SQL e criará seu banco e usuário sem problemas.

    Espero que te ajude.

    quinta-feira, 22 de maio de 2014 16:21
  • Jose Geraldo, gostei bastante desta resposta, hoje mesmo tentarei fazer desta forma, já para adiantar, eu não sou um grande especialista de SQL... Este script que cria o banco e as tabelas até tenho noção de como fazer(olhando alguns tutoriais fica facinho) agora esta questão de criar o usuário ai ja não faço ideia de como é feito teria algum tutorial que ensina isto?

    E outra coisa, algo que me traz muita dúvida é, normalmente quando baixamos um programa da net, é só clicar em executar e Next, Next, Next e pronto tudo funcionando perfeitamente, já procurei diversas vezes mais nunca achei um tutorial ou artigo que disse como isto é feito, gostaria de fazer algo assim, para alem de poupar tempo quando for instalar para o usuário ficar mais simples caso precise reinstalar, repara, etc....Saberia me informar onde encontro exemplos de como fazer algo assim no VS 2012 e SQL?

    Abraço.

    quinta-feira, 22 de maio de 2014 16:53
  • Vou colocar abaixo um script que gera o usuário no banco.

    Para executa-lo precisa somente ter logado com privilégios no banco.

    CREATE LOGIN [sa_ze2] WITH PASSWORD=N'sa@123456', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
    GO
    
    EXEC sys.sp_addsrvrolemember @loginame = N'sa_ze2', @rolename = N'sysadmin'
    GO
    

    O script acima cria um usuário de nome "SA_ZE2" com a senha as@123456 e atribui direito de adm do servidor.

    Obs: Não digo que seja a melhor forma, atribuir está permissão, talvez seja melhor atribuir DbOwner no seu banco.

    CREATE LOGIN [sa_ze3] WITH PASSWORD=N'sa@123456', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
    GO
    
    DECLARE @sql nvarchar(4000);
    DECLARE @BigSQL nvarchar(4000);
    DECLARE @dbName varchar(100);
    
    SET @dbName = 'TESTEGEO'
    SET @sql = N'exec sp_changedbowner ''''sa_ze3''''';
    SET @BigSQL = N'USE [' + @dbName + ']; EXEC sp_executesql N''' + @sql + '''';
    EXEC (@BigSQL)
    GO
    

    O segundo script cria o login "sa_ze3" e atribui acesso ao banco "TESTEGEO" somente.

    Quanto ao documento de instalação do SQL, eu não vi na web. tenho um do 2005 e posso te enviar se você colocar um e-mail aqui. depois você remove o e-mail.

    Quando vc clica next next, realmente não aparece a opção.

    Você precisa usar a opção customizada. Na tela "Components to install" você deve clicar em advanced.

    Espero que te ajude.

    sexta-feira, 23 de maio de 2014 17:21
  • Jose Geraldo, desde ja agradeço sua ajuda, vlw mesmo.

    Porem,não u continua dando o mesmo problema e este se deve ao fato de que ele não ta achando a base de dados.

    Uso o instalshild,ai quando chego parte de inserir a pasta do projejeto e DB insiro o arquivo propriamente dito do banco de dados na pasta "DATABASEDIR" em azul e a pasta Debug do projeto.


    Depois na máquina onde vou instalar, eu executo o instalador do SQLEXPRESS2012 ai vou seguindo os passos de instalação, na parte onde é para informar para usar as credenciais do windows ou misto, eu coloquei misto e digitei uma senha para o sql. Após concluir a instalação, ai peguei o script para criar ao Banco de dados, porem ele não reconhece como arquivo do sql, e onde o sql foi instalado não tem nehum  .exe para abrir algum gerenciador e nada. Então simplesmente instala o sqlexpress e morre ai, todos osos a rquivos DB, tabelas etc não são reconhecidos como arquivos de DB. Eu preciso baixar e instalar tb o sqlmanagement?

    Oque esta faltando ai?

    Vlw

    sexta-feira, 23 de maio de 2014 20:16
  • Eu não posso te ajudar quanto ao Installshild, eu não o utilizo.

    Eu crio o projeto asp.net em minha casa, faço o publish para uma pasta do meu computador.

    No cliente, coloco numa pasta qualquer, crio o site no IIS (internet information service). criando primeiro o aplication pool.

    Para apontar para a base de dados, eu aponto no web.config conforme te falei acima.

    O SQL express tem uma ferramenta de administração sim. Vou passar o endereço para baixa-la. Chama-se ADV. http://www.microsoft.com/pt-br/download/details.aspx?id=1842

    Outra coisa que pode ser feita é:

    crie um arquivo txt na tela desktop.  (observação: garanta que o sistema exibe extensão de arquivos conhecidos)

    renomeie o arquivo.txt  para arquivo.udl

    confirme a mudança. Abrindo este arquivo, ele abre uma ferramenta de conexão com o banco de dados - com o nome na caption "DATA LINK PROPERTIES".

    Se você conseguir usa-la, conectando-se com o banco, você pode abrir o arquivo editando que a conexão com o banco estará dentro dele.

    • Marcado como Resposta Jhonathan Maia sexta-feira, 23 de maio de 2014 20:44
    sexta-feira, 23 de maio de 2014 20:29
  • rsrsr, vou baixar esta ferramenta e ver como é. E vou ver esta questão do txt. Meu projeto é desktop mais creio que com este ADV ja consiga criar a conexão rsrs.

    Mais uma vez te agradeço.

    Abraço.

    sexta-feira, 23 de maio de 2014 20:44