none
Connection String Sql Server RRS feed

  • Pergunta

  • Bom dia, criei uma base de dados Microsoft SQL Server Compact 4.0.

    Quando criei escolhi a autenticação do Windows.

    Já criei várias bases de dados em MySQL e por norma a string de conexão é "server=127.0.0.1;userid=admin; password=1234; database=exemplo";

    No SQL Server não estou a ser capaz de me ligar a ela e por isso peço a vossa ajuda.

    Obtive o Data Source que basicamente é o caminho para a DB no computador.

    Agora não sei como completar a string...

    Já vi alguns tutoriais, mas não percebo onde arranjar todos os parâmetros.

    O (localdb) é a raiz do disco?

    Cumprimentos,

    Diogo Lamego

    sexta-feira, 13 de dezembro de 2013 08:43

Respostas

  • Bom dia Diogo,

    Como esta toda a sua Connection String?

    Você disse que não é capaz de se ligar a ela, qual erro esta dando?

    Nesse site tem todos os modelos de Connection String: http://www.connectionstrings.com/

    Aqui estão os modelos para SQL Server Compact: http://www.connectionstrings.com/sql-server-compact/

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é 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 é 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.

    sexta-feira, 13 de dezembro de 2013 10:02

Todas as Respostas

  • Bom dia Diogo,

    Como esta toda a sua Connection String?

    Você disse que não é capaz de se ligar a ela, qual erro esta dando?

    Nesse site tem todos os modelos de Connection String: http://www.connectionstrings.com/

    Aqui estão os modelos para SQL Server Compact: http://www.connectionstrings.com/sql-server-compact/

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é 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 é 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.

    sexta-feira, 13 de dezembro de 2013 10:02
  • string strconn = @"Data Source=MyDatabase#1.sdf;Encrypt Database=True;Password=1234;File Mode=shared read;Persist Security Info=False"; string query = "INSERT INTO reparacao (nome, telefone, equip, marca, modelo, password, avaria, freq, prioridade, analise, estimado, caucao, data, hora) VALUES (@nome, @telefone, @equip, @marca, @modelo, @password, @avaria, @freq, @prioridade, @analise, @estimado, @caucao, @data, @hora)"; SqlConnection conn = new SqlConnection(strconn); SqlCommand cmd = new SqlCommand(query, conn); cmd.Parameters.Add("@nome", SqlDbType.VarChar, 50); cmd.Parameters.Add("@telefone", SqlDbType.NChar, 9); cmd.Parameters.Add("@equip", SqlDbType.VarChar, 50); cmd.Parameters.Add("@marca", SqlDbType.VarChar, 50); cmd.Parameters.Add("@modelo", SqlDbType.VarChar, 50); cmd.Parameters.Add("@password", SqlDbType.VarChar, 20); cmd.Parameters.Add("@avaria", SqlDbType.VarChar, 50); cmd.Parameters.Add("@freq", SqlDbType.VarChar, 50); cmd.Parameters.Add("@prioridade", SqlDbType.VarChar, 50); cmd.Parameters.Add("@analise", SqlDbType.VarChar, 50); cmd.Parameters.Add("@estimado", SqlDbType.NVarChar,10); cmd.Parameters.Add("caucao", SqlDbType.NVarChar,10); cmd.Parameters.Add("data", SqlDbType.NVarChar, 15); cmd.Parameters.Add("hora", SqlDbType.NVarChar, 10); cmd.Parameters["@nome"].Value = txt_nome.Text; cmd.Parameters["@telefone"].Value = txt_telf.Text; cmd.Parameters["@equip"].Value = cb_equip.Text; cmd.Parameters["@marca"].Value = cb_freq.Text; cmd.Parameters["@modelo"].Value = txt_modelo.Text; cmd.Parameters["@password"].Value = txt_password.Text; cmd.Parameters["@avaria"].Value = txt_avaria.Text; cmd.Parameters["@freq"].Value = cb_freq.Text; cmd.Parameters["@prioridade"].Value = cb_prioridade.Text; cmd.Parameters["@analise"].Value = txt_analise.Text; cmd.Parameters["@estimado"].Value = txt_estimado.Text; //cmd.Parameters["@caucao"].Value = txt_caucao.Text; //cmd.Parameters["@data"].Value = lb_data.Text; //cmd.Parameters["@hora"].Value = lb_hora.Text; try { conn.Open(); cmd.ExecuteNonQuery(); MessageBox.Show("Inserido com Sucesso", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } catch (SqlException ex) { MessageBox.Show("Erro:" + ex.Message); } finally { conn.Close(); this.Close(); }

    Boas, já configurei, mas estou a obter um erro:

    "Palavra-chave não suportada: 'encrypt database'."

    O código deixei em cima...

    Caso retire o encrypt database de seguida aparece o mesmo erro para o File Mode.

    Se retirar ambos obtenho um erro que não encontra a base de dados.

    Já agora uma outra dúvida:

    Este aplicativo será para funcionar em 4 computadores ao mesmo tempo, será que com esta DB conseguirei colocar tudo em funcionamento ou deveria estar a usar SQL Server e não uma versão Compact?


    domingo, 15 de dezembro de 2013 22:48
  • Bom dia,

    Tenta fazer dessa forma sua Connection String, esse erro é relacionado a ela:

    string strconn = "Data Source='MyDatabase#1.sdf';Encrypt Database=True;Password=1234;File Mode='shared read';Persist Security Info=False";
    

    Colocando aspas simples no nome da sua data source e no 'modo' do seu file mode

    Quanto a sua duvida sobre utilizar o SQL Compact. O SQL Compact suporta até 256 conexões, portanto creio que em seu cenário o Compact funcionara sem problemas.

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é 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 é 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.

    segunda-feira, 16 de dezembro de 2013 13:37
  • Boas, acabei de testar com a string que colocaste, mas continua com o mesmo erro :S

    O erro dá logo no encrypt database.

    segunda-feira, 16 de dezembro de 2013 18:49
  • Deixa a sua base sem o sinal de #, e da connection string retira o # e a aspa entre o nome do arquivo e faz um teste.


    segunda-feira, 16 de dezembro de 2013 19:26
  • Boas, acabei por eliminar a DB e tive que criar de novo.

    Desta vez não coloquei nenhuma password e não coloquei nenhum #

    Como continuei a ter os mesmos erros, eliminei mais uma vez e criei uma DB apenas com 2 colunas.

    O erro continua o mesmo.

    Deixo o código que tenho neste momento:

    string strconn = "Data Source=RepairCenter.sdf; Persist Security Info=False";
    
                string query = "INSERT INTO reparacao (nome, telefone, equip, marca, modelo, password, avaria, freq, prioridade, analise, estimado, caucao, data, hora) VALUES (@nome, @telefone, @equip, @marca, @modelo, @password, @avaria, @freq, @prioridade, @analise, @estimado, @caucao, @data, @hora)";
    
                SqlConnection conn = new SqlConnection(strconn);
                SqlCommand cmd = new SqlCommand(query, conn);
    
                cmd.Parameters.Add("@nome", SqlDbType.VarChar, 50);
                cmd.Parameters.Add("@telefone", SqlDbType.NChar, 9);
                //cmd.Parameters.Add("@equip", SqlDbType.VarChar, 50);
                //cmd.Parameters.Add("@marca", SqlDbType.VarChar, 50);
                //cmd.Parameters.Add("@modelo", SqlDbType.VarChar, 50);
                //cmd.Parameters.Add("@password", SqlDbType.VarChar, 20);
                //cmd.Parameters.Add("@avaria", SqlDbType.VarChar, 50);
                //cmd.Parameters.Add("@freq", SqlDbType.VarChar, 50);
                //cmd.Parameters.Add("@prioridade", SqlDbType.VarChar, 50);
                //cmd.Parameters.Add("@analise", SqlDbType.VarChar, 50);
                //cmd.Parameters.Add("@estimado", SqlDbType.NVarChar,10);
                //cmd.Parameters.Add("caucao", SqlDbType.NVarChar,10);
                //cmd.Parameters.Add("data", SqlDbType.NVarChar, 15);
                //cmd.Parameters.Add("hora", SqlDbType.NVarChar, 10);
    
                cmd.Parameters["@nome"].Value = txt_nome.Text;
                cmd.Parameters["@telefone"].Value = txt_telf.Text;
                //cmd.Parameters["@equip"].Value = cb_equip.Text;
                //cmd.Parameters["@marca"].Value = cb_freq.Text;
                //cmd.Parameters["@modelo"].Value = txt_modelo.Text;
                //cmd.Parameters["@password"].Value = txt_password.Text;
                //cmd.Parameters["@avaria"].Value = txt_avaria.Text;
                //cmd.Parameters["@freq"].Value = cb_freq.Text;
                //cmd.Parameters["@prioridade"].Value = cb_prioridade.Text;
                //cmd.Parameters["@analise"].Value = txt_analise.Text;
                //cmd.Parameters["@estimado"].Value = txt_estimado.Text;
                //cmd.Parameters["@caucao"].Value = txt_caucao.Text;
                //cmd.Parameters["@data"].Value = lb_data.Text;
                //cmd.Parameters["@hora"].Value = lb_hora.Text;
    
                try
                {
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Inserido com Sucesso", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                
                catch (SqlException ex)
                {
                    MessageBox.Show("Erro:" + ex.Message);
                }
                
                finally
                {
                    conn.Close();
                    this.Close();
                }
            }

    sexta-feira, 20 de dezembro de 2013 22:22
  • Bom dia,

    De uma olhada nesses links, esse erro Provider erro 40 é um dos erros mais comuns.

    Nesses links tem alguns procedimentos que você pode verificar para ver se algum deles não esta causando esse erro.

    http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/

    http://blogs.msdn.com/b/sql_protocols/archive/2007/03/31/named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server.aspx

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é 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 é 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.

    quinta-feira, 26 de dezembro de 2013 10:38
  • Tenta colocar no server name 

    localhost\SQLCOMPACT.

    pois eu coloco localhost\SQLEXPRESS para o sql express.

    quinta-feira, 26 de dezembro de 2013 21:45
  • porque não tenta criar um nome de conexão em app.config e tentar passar ela por parametro com o nome dado para a conexão?
    quinta-feira, 26 de dezembro de 2013 22:53
  • Boas, já resolvi o problema.

    Acabei por eliminar e criar uma nova base de dados sem qualquer tipo de autenticação e assim já deu :)

    Obrigado por toda a ajuda.

    Cumprimentos

    domingo, 5 de janeiro de 2014 23:39