Usuário com melhor resposta
Ajuda na conexã com o Banco de Dados C#

Pergunta
-
Olá... sou um programador iniciante em c#. Resolvi criar um programa usando banco de dados em c#. Funciona perfeitamente no meu computador. Acontece que quando executo o mesmo programa em outro computador que não possua o visual e o sql server ele não funciona alegando que o meu programa possui erros não tratados ligados ao SQL. Pela minha interpretação isso ocorre porque não soube fazer a conexão direito.
No curso que fiz de C# a única coisa que foi passado sobre banco é a conexão automática com o banco que o visual studio faz, tanto que o meu banco de dados foi todo estruturado dentro do visual studio. Tentei modificar a string de conexão colocando no lugar de |DataDirectory| o local específico tipo c:... mas mesmo assim não funciona.
Na mensagem de erro diz. Ocorreu uma excessão não tratada .....
Erro de rede oou específico à instância ao estabelecer a conexão com o SQL Server..... Erro 26 - Erro ao localizar Servidor/Instância Especificada
Respostas
-
Sim, isso você deve fazer porque é uma aplicação local
se a aplicação fosse em servidor na sua rede
não precisaria alterar a string de conexao,
contudo, deve se instalar a versão sql server e criar a base de dados lá também
abraço,
Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programming but I like it.- Sugerido como Resposta Leonardo B Moreira segunda-feira, 11 de janeiro de 2010 16:35
- Marcado como Resposta Harley AraujoModerator quarta-feira, 13 de janeiro de 2010 12:15
-
Pra facilitar sua vida vou postar um método de conexão com a base que eu mesmo desenvolvi. ele é baseado no app.config
Adicione um App.config ao seu projeto, e sete o seguinte texto em xml:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<!-- Nome/ip da instância do SQL Server -->
<add key="Data Source" value="localhost" />
<!-- Nome do usuário do SQL Server -->
<add key="User ID" value="Login" />
<!-- Senha do usuário do SQL Server -->
<add key="Password" value="Senha" />
<!-- Nome da Base de Dados no SQL Server -->
<add key="Initial Catalog" value="BaseDeDados" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
</configuration>
Adicione esse método onde achar melhor, pra ler o app.config:
//Nesse meu caso, o objeto de conexao conn não está declarado no método, você pode criar um, o meu é Estático e é válido pra todo o sistema!
public static void OpenConnection()
{
try
{
//Seta um objeto capaz de ler o App.Config
AppSettingsReader configurationAppSettings = new AppSettingsReader();
//Monta parcialmente a string de conexão lendo a partir do App.Config
string DataSource = configurationAppSettings.GetValue("Data Source", typeof(String)).ToString();
string UserId = configurationAppSettings.GetValue("User ID", typeof(String)).ToString();
string Password = configurationAppSettings.GetValue("Password", typeof(String)).ToString();
string InitialCatalog = configurationAppSettings.GetValue("Initial Catalog", typeof(String)).ToString();
//Monta a string de conexão
string ConnectionString = "Data Source=" + DataSource + ";";
ConnectionString += "User ID=" + UserId + ";";
ConnectionString += "Password=" + Password + ";";
ConnectionString += "Initial Catalog=" + InitialCatalog;
//Cria uma instância do atributo SqlConnection estático em memória
conn = new SqlConnection();
//Atribui a string de conexão e abre a conexão
conn.ConnectionString = ConnectionString;
conn.Open();
}
catch (Exception ex)
{
MessageBox.Show("Houve um problema ao conectar com o Banco de Dados\n" +
"Verificar a configuração no arquivo App.config\n\n" +
ex.Message);
conn = null;
}
}
Com essa metodologia, você pode deixar seu sistema dinâmico pra rodar onde lhe aprouver, porque você pode somente alterar o xml com os dados necessários, como nome do servidor ou base de dados. E pra alterar o xml app.config voce pode alterar sem sequer ter o visual studio na maquina, pode alterar com bloco de notas!
Espero ter ajudado e espero que use o exemplo!- Marcado como Resposta Harley AraujoModerator quarta-feira, 13 de janeiro de 2010 12:14
-
Sugiro que procure mais a respeito de banco de dados.
Exemplo: Como você quer guarda dinheiro no banco se não existe banco para guardar?
É o mesmo em sua aplicação, como deseja salvar as informações se você não tem o banco de dados instalado no computador? A solução para isso seria acessar outro computador que tenha o banco de dados e guardar nele (no caso, servidor).
Se você não quer instalar, acesse otro local que tenho o sql server, porem se o local estiver "desligado", você não opera.
Att.
TPS- Sugerido como Resposta Thiago Piccoli da Silva segunda-feira, 11 de janeiro de 2010 17:45
- Marcado como Resposta Harley AraujoModerator quarta-feira, 13 de janeiro de 2010 12:15
-
Tente o sql express edition
ou então, talvez seja o caso de utilizar outra base de dados como mysql ou ate mesmo access.
Problemas com capacidade de armazenamento é o caso de rever projeto,
talvez mudar a base seja uma boa solução. Não adianta ter uma ferrari que corre a 300km/h se você só pode correr até 90km/h(anchieta)... na verdade adianta sim, mais só pra falar que tem uma ferrari entende hehe
abraço,
Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programming but I like it.- Sugerido como Resposta Thiago Piccoli da Silva segunda-feira, 11 de janeiro de 2010 17:45
- Marcado como Resposta Harley AraujoModerator quarta-feira, 13 de janeiro de 2010 12:15
-
Você deve repensar o projeto,
talvez seja o caso de utilizar outro banco de dados
ou no melhor caso que acho, acessar o banco em um servidor
conforme thiago disse
abraço,
Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programming but I like it.- Sugerido como Resposta Thiago Piccoli da Silva segunda-feira, 11 de janeiro de 2010 17:45
- Marcado como Resposta Harley AraujoModerator quarta-feira, 13 de janeiro de 2010 12:15
Todas as Respostas
-
Pra executar em outro computador existem 2 soluções:
1- Setar a string de conexão pra buscar uma base de dados pela rede, dizendo seu endereço ip ou nome do servidor que tem o sql instalado.
2- Instalar o sql em cada maquina que for usar o sistema, e assim, setar a string de conexao pra localhost, assim sempre irá funcionar!- Sugerido como Resposta Thiago Piccoli da Silva segunda-feira, 11 de janeiro de 2010 17:56
-
Pra rodar local
você deve ter instalado o sql no computador ou na rede
e tem q alterar o caminho do banco ou ip de acordo com cada caso
abraço,
Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programming but I like it.- Sugerido como Resposta Thiago Piccoli da Silva segunda-feira, 11 de janeiro de 2010 17:45
-
-
Sim, isso você deve fazer porque é uma aplicação local
se a aplicação fosse em servidor na sua rede
não precisaria alterar a string de conexao,
contudo, deve se instalar a versão sql server e criar a base de dados lá também
abraço,
Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programming but I like it.- Sugerido como Resposta Leonardo B Moreira segunda-feira, 11 de janeiro de 2010 16:35
- Marcado como Resposta Harley AraujoModerator quarta-feira, 13 de janeiro de 2010 12:15
-
-
-
Sugiro que procure mais a respeito de banco de dados.
Exemplo: Como você quer guarda dinheiro no banco se não existe banco para guardar?
É o mesmo em sua aplicação, como deseja salvar as informações se você não tem o banco de dados instalado no computador? A solução para isso seria acessar outro computador que tenha o banco de dados e guardar nele (no caso, servidor).
Se você não quer instalar, acesse otro local que tenho o sql server, porem se o local estiver "desligado", você não opera.
Att.
TPS- Sugerido como Resposta Thiago Piccoli da Silva segunda-feira, 11 de janeiro de 2010 17:45
- Marcado como Resposta Harley AraujoModerator quarta-feira, 13 de janeiro de 2010 12:15
-
Tente o sql express edition
ou então, talvez seja o caso de utilizar outra base de dados como mysql ou ate mesmo access.
Problemas com capacidade de armazenamento é o caso de rever projeto,
talvez mudar a base seja uma boa solução. Não adianta ter uma ferrari que corre a 300km/h se você só pode correr até 90km/h(anchieta)... na verdade adianta sim, mais só pra falar que tem uma ferrari entende hehe
abraço,
Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programming but I like it.- Sugerido como Resposta Thiago Piccoli da Silva segunda-feira, 11 de janeiro de 2010 17:45
- Marcado como Resposta Harley AraujoModerator quarta-feira, 13 de janeiro de 2010 12:15
-
Você deve repensar o projeto,
talvez seja o caso de utilizar outro banco de dados
ou no melhor caso que acho, acessar o banco em um servidor
conforme thiago disse
abraço,
Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programming but I like it.- Sugerido como Resposta Thiago Piccoli da Silva segunda-feira, 11 de janeiro de 2010 17:45
- Marcado como Resposta Harley AraujoModerator quarta-feira, 13 de janeiro de 2010 12:15
-
Você poderia utilizar então o firebird, ele não chega a 100mb instalado (acho que bem menos que isso)
- Sugerido como Resposta Thiago Piccoli da Silva segunda-feira, 11 de janeiro de 2010 17:45
-
-
Pra facilitar sua vida vou postar um método de conexão com a base que eu mesmo desenvolvi. ele é baseado no app.config
Adicione um App.config ao seu projeto, e sete o seguinte texto em xml:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<!-- Nome/ip da instância do SQL Server -->
<add key="Data Source" value="localhost" />
<!-- Nome do usuário do SQL Server -->
<add key="User ID" value="Login" />
<!-- Senha do usuário do SQL Server -->
<add key="Password" value="Senha" />
<!-- Nome da Base de Dados no SQL Server -->
<add key="Initial Catalog" value="BaseDeDados" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
</configuration>
Adicione esse método onde achar melhor, pra ler o app.config:
//Nesse meu caso, o objeto de conexao conn não está declarado no método, você pode criar um, o meu é Estático e é válido pra todo o sistema!
public static void OpenConnection()
{
try
{
//Seta um objeto capaz de ler o App.Config
AppSettingsReader configurationAppSettings = new AppSettingsReader();
//Monta parcialmente a string de conexão lendo a partir do App.Config
string DataSource = configurationAppSettings.GetValue("Data Source", typeof(String)).ToString();
string UserId = configurationAppSettings.GetValue("User ID", typeof(String)).ToString();
string Password = configurationAppSettings.GetValue("Password", typeof(String)).ToString();
string InitialCatalog = configurationAppSettings.GetValue("Initial Catalog", typeof(String)).ToString();
//Monta a string de conexão
string ConnectionString = "Data Source=" + DataSource + ";";
ConnectionString += "User ID=" + UserId + ";";
ConnectionString += "Password=" + Password + ";";
ConnectionString += "Initial Catalog=" + InitialCatalog;
//Cria uma instância do atributo SqlConnection estático em memória
conn = new SqlConnection();
//Atribui a string de conexão e abre a conexão
conn.ConnectionString = ConnectionString;
conn.Open();
}
catch (Exception ex)
{
MessageBox.Show("Houve um problema ao conectar com o Banco de Dados\n" +
"Verificar a configuração no arquivo App.config\n\n" +
ex.Message);
conn = null;
}
}
Com essa metodologia, você pode deixar seu sistema dinâmico pra rodar onde lhe aprouver, porque você pode somente alterar o xml com os dados necessários, como nome do servidor ou base de dados. E pra alterar o xml app.config voce pode alterar sem sequer ter o visual studio na maquina, pode alterar com bloco de notas!
Espero ter ajudado e espero que use o exemplo!- Marcado como Resposta Harley AraujoModerator quarta-feira, 13 de janeiro de 2010 12:14
-
Com certeza usarei.... muito obrigado.... facilitou muito as coisas....
- Sugerido como Resposta Kelly_patti sexta-feira, 4 de outubro de 2013 14:32
-
-
-