none
Como acessar um banco de dados num servidor com uma aplicação desktop através do ado.net?

    Question

  • Digamos que eu crie um aplicação desktop e a instale um computador e queira acessar o banco em outro computador com ado.net?

    Isso é possível só numa rede ou na internet também?

     

    Monday, October 17, 2011 12:04 AM

Answers

  • Olá Eujobi,

    No caso do firebird sua connection string deve se parecer com isso:

    string cs = "User=seuUsuario;Password=SuaSenha;Database=CaminhoDoArquivo;DataSource=NomeDoServidorOndeEstaOBancoDeDados;Port=3050;Dialect=3;"


    Dica: No caso da sua suposição existem duas coisas contraditórias. Vc informa server como 196.168.XXX.XXX (IP de alguma máquina no servidor) e informa o DataSource como localhost, a palavra chave localhost significa em termos gerais: "A máquina atual". Então parece que vc manda a connectionstring se conectar em um banco de dados localizador no IP 196.168.XXX.XXX que fica na máquina atual...

     

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Marked as answer by Eujobi Friday, October 21, 2011 10:18 PM
    Wednesday, October 19, 2011 12:26 AM

All replies

  • Sim é possível, desde que sua aplicação esteja apontando para o servidor/computador que contenha o banco de dados, mais tem que se atentar ha alguns detalhes, as configurações do firewall, configurações das portas do modem ou roteador

    Faça um teste simples, faça uma pequena aplicação que te retorne uma mensagem "Conectou", deixe tudo configurado corretamente para acessar o banco de dados e execute em algum computador da mesma rede:

    try
    {
        using (var cn = new System.Data.SqlClient.SqlConnection("Sua string de conexao aqui"))
        {
            cn.Open();
    
            var version = cn.ServerVersion;
            MessageBox.Show("Conexão estabelecida! " + version);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Conexão não estabelecida!\nErro:\n" + ex.Message);
        throw;
    }
    

     
    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/
    Monday, October 17, 2011 12:19 AM
  • Olá Eujobi,

    Sim, é possível se conectar a uma base de dados em rede. Vc passa tais informações em sua connection string.

    Olhe esse exemplo:

    Server=myServerName\theInstanceName;Database=myDataBase;user=usuario;pwd=password;
    


    Nessa string de conexão "MyServerName" corresponde ao nome do servidor. Pode ser o nome de uma máquina ou o IP fixo de um servidor...

    Caso, vc tenha um servidor distribuido em rede, basta colocar seu nome no lugar de MyServerName e boa! Sua connection string estará disponível...

    Se vc tiver um servidor ou uma base de dados online, então vc também pode colocar o IP ou url da instância do seu banco de dados SQL para fazer a conexão...

    Outra solução também é o uso de Azure SQL, isto é, banco de dados nas nuvens...

     

    Um exemplo de modo de conexão com banco de dados usando ADO.Net vc poderá ver neste link: http://code.msdn.microsoft.com/Acesso-a-Dados-Design-a5455cd0

     

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    Monday, October 17, 2011 12:26 AM
  • Olá, desde já agradeço pela resposta.

    deixa eu ver se eu entendi. Digamos que eu tenha uma conexção com firebird. Então eu tenho que acrescentar o endereço do servidor na string de conexão? É isso?

    Eu tendei colocar assim mas nem testei!!!

    private string strConn ="server=196.168.xxx.xxx;User=SYSDBA;Password=masterkey;"
    + @"Database=C:\PastaFireBird\BANCOFIREBIRD.FDB;"
    + "DataSource=localhost;Port=3050;"
    + "Dialect=3;Charset=NONE;Role=;"
    + "Connection lifetime=0;"
    + "Connection timeout=15;"
    + "Pooling=True;Packet"
    + " Size=8192;Server Type=0";

    Jesus os abençoe!!!

     

    Tuesday, October 18, 2011 2:55 PM
  • Olá Eujobi,

    No caso do firebird sua connection string deve se parecer com isso:

    string cs = "User=seuUsuario;Password=SuaSenha;Database=CaminhoDoArquivo;DataSource=NomeDoServidorOndeEstaOBancoDeDados;Port=3050;Dialect=3;"


    Dica: No caso da sua suposição existem duas coisas contraditórias. Vc informa server como 196.168.XXX.XXX (IP de alguma máquina no servidor) e informa o DataSource como localhost, a palavra chave localhost significa em termos gerais: "A máquina atual". Então parece que vc manda a connectionstring se conectar em um banco de dados localizador no IP 196.168.XXX.XXX que fica na máquina atual...

     

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Marked as answer by Eujobi Friday, October 21, 2011 10:18 PM
    Wednesday, October 19, 2011 12:26 AM