none
Erro na conexão com o banco de dados RRS feed

  • Pergunta

  • Pessoal, boa noite!

    meu primeiro projeto que estou trabalhando anexando um banco de dados ao projeto, Através de algumas pesquisas na net, consegui fazer o processo de add o banco no projeto e criei uma classe para string de conexão, conforme a imagem abaixo. 

    Ate aqui blz, apesar de ser a primeira vez que estou fazendo isso. O problema é que quando executo o projeto esta dando esse erro abaixo. Como tenho pouca experiencia e nunca me deparei com esse erro não sei o que está acontecendo e como resolve-lo.

    Espero que possam me ajudar de alguma forma. 

    desde já agradeço... até amanhã.

    Thyago


    quinta-feira, 16 de julho de 2015 22:44

Respostas

  • Boa tarde,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Marcos SJ sexta-feira, 31 de julho de 2015 18:24
    sexta-feira, 31 de julho de 2015 18:24

Todas as Respostas

  • Olá Thyago,

    Provavelmente o que está incorreto é o parâmetro de configuração da sua SqlConnection.

    Tente criar uma nova configuração para a conexão em seu arquivo AutoGlass.mdf, acessando o menu (dentro do visual studio)

    "TOOLS >> Connect to Database..."

    E então na opção Data Source: altere para "Microsoft SQL Server Database File", clique em "Browse..." e selecione o caminho correto do arquivo do banco de dados "AutoGlass.mdf".

    Selecione a forma de conexão com o arquivo de dados e, se necessário, insira os dados de acesso (login e senha).

     

    Verifique que existe um botão "Test Connection" para testar a conexão.

    Por fim clique em OK, se der tudo certo será criada uma conexão para seu banco de dados e aparecerá um ícone no canto superior esquerdo da tela do Visual Studio.

    De um único clique com o botão esquerdo do mouse nessa conexão que foi criada, e então vá em suas propriedades.

    Em Connection existe um campo : Connection String.

    Clique duas vezes no conteúdo da Connection String, copie e cole como parâmetro dentro da variável SqlConnection().

    dessa forma: 

    SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=mystic;Persist Security Info=True;User ID=sa;Password=***********");

    Com absoluta certeza o campo de password não será lido com sucesso. Então basta alterar esse campo para a senha correta, e tudo funcionará perfeitamente.

    Como mostro no exemplo abaixo.

    SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=mystic;Persist Security Info=True;User ID=sa;Password=DigiteSuaSenhaAqui");

    Espero que funcione! :D

    sexta-feira, 17 de julho de 2015 16:58
  • Gabriel, foi exatamente o que eu fiz, porem o erro continua, e quando eu faço o test de conexão ele conecta normal, mais quando rodo a aplicação ele da o erro. Porem funciona quando ele quer...

    o que sera?

    sábado, 18 de julho de 2015 22:36
  • Thyago, não dá pra ver direito mas vc abre a conexão e após o insert vc fecha a conexão. posta o cod. sem o erro.

    Att, wsti.

    sábado, 18 de julho de 2015 23:18
  • Wsti, bom dia!

    segue o Código da minha classe de acesso a dados onde consta o código sem o erro.

    namespace AcessoBancoDados
    {
        public class AcessoDadosSqlServer
        {
            // criar conexão
            private SqlConnection CriarConexao()
            {
                //return new SqlConnection(Settings.Default.stringConexao);
                return new SqlConnection(Settings.Default.AutoGlassConnectionString);
            }
    
            //Parâmetros que vão para o banco
            private SqlParameterCollection ColecaoParametroSQL = new SqlCommand().Parameters;
    
            //metodo para limpar parametros
            public void LimparParametros()
            {
                ColecaoParametroSQL.Clear();
            }
    
            //metodo para add parametros
            public void AdicionarParametros(string nomeParametro, object valorParametro)
            {
                ColecaoParametroSQL.Add(new SqlParameter(nomeParametro, valorParametro));
            }
    
            //Persistência - Inserir, Alterar, Excluir
            public object ExecutarParametros(CommandType commandType, string nomeStoredProcedureOuTextoSql)
            {
                try
                {
                    //Criar a conexão
                    SqlConnection sqlConnection = CriarConexao();
                    //Abrir conexão
                    sqlConnection.Open();
                    //Criar o comando que vai levar a informação para o banco
                    SqlCommand sqlCommand = sqlConnection.CreateCommand();
                    //Colocando as coisas dentro do comando (dentro da caixa que vai trafegar na conexão)
                    sqlCommand.CommandType = commandType;
                    sqlCommand.CommandText = nomeStoredProcedureOuTextoSql;
                    sqlCommand.CommandTimeout = 7200; // Em segundos
    
                    //Adicionar os parâmetros no comando
                    foreach (SqlParameter sqlParameter in ColecaoParametroSQL)
                    {
                        sqlCommand.Parameters.Add(new SqlParameter(sqlParameter.ParameterName, sqlParameter.Value));
                    }
    
                    //Executar o comando, ou seja, mandar o comando ir até o banco de dados
                    return sqlCommand.ExecuteScalar();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
    
            //Consultar registro no banco de dados        
            public SqlDataReader ExecutarConsulta(string NomeStoredProcedure)
            {
                //tratamento de erro.
                try//-->try tente fazer tudo dentro do {} 
                {
                    //10-Criando a conexão e chamando o metodo "CriarConexao();" onde foi criada a String de Conexão            
                    SqlConnection Connection = CriarConexao();
                    //abrindo a conexão
                    Connection.Open();
                    //11-criando o comando que vai levar a infomação para o (BD)Bando de Dados
                    //Command recebe a Connection aberta e cria o comando
                    SqlCommand Command = new SqlCommand(NomeStoredProcedure, Connection);
                    //12-colocando as coisa dentro do comando (ex: dentro da caixa que vai trafegar na conexão)
                    //execultando o parametro "commandType".            
                    Command.CommandType = CommandType.StoredProcedure;
                    //13-COLOCANDO QUANTO TEMPO A CONEXÃO PODE FICAR ABERTA
                    //--> (7200)é o tempo em segundos que a conexão fica aberta, caso não haja nenhuma ação.
                    Command.CommandTimeout = 7200;
    
                    //14-ADICIONAR OS PARAMETROS NO COMANDO
                    foreach (SqlParameter sqlParameter in ColecaoParametroSQL)
                    {
                        //adicionando nome do parametro e valor dentro do comando
                        Command.Parameters.Add(new SqlParameter(sqlParameter.ParameterName, sqlParameter.Value));
                    }
    
                    SqlDataReader reader = Command.ExecuteReader(CommandBehavior.CloseConnection);
    
                    //criando um adaptador, ou seja, adaptador de dados SQL
                    //o que vai retornar para o metodo
                    return reader;
    
    
                }
                catch (Exception ex)//--> se der erro (cath) captura o erro.
                {
                    //dispara nova sessão e mostra o erro.
                    throw new Exception(ex.Message);
    
                }
            }
        }

    Com o banco de dados no sql funciona normalmente, porem quero anexar o banco na aplicação para gerar um executável e mandar para um cliente. É a primeira vez que faço isso, por isso não sei se a maneira que estou fazendo esta correta.

    Obrigado

    segunda-feira, 20 de julho de 2015 12:47
  • Bom Dia,

    o erro esta falando que já existe um banco de dados com esse nome.

    verifique nas suas conexões com o banco ou então troque o nome do seu banco atual.


    segunda-feira, 20 de julho de 2015 17:25
  • Bom dia Thyago!

    Dê uma olhada no seguinte link:

    Com certeza irá lhe ajudar!!!


    Pablo Batista Cardoso



    terça-feira, 21 de julho de 2015 12:59
  • Boa tarde,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Marcos SJ sexta-feira, 31 de julho de 2015 18:24
    sexta-feira, 31 de julho de 2015 18:24