em

Como fazer uma classe de conexão com PostGreSQL

Último post 10-29-2008 13:22 de Fabiano Rech. 7 respostas.
Página 1 de 1 (8 itens)
Classificação de Posts: Anterior Próximo
  • 09-25-2008 15:30

    • diogo
    • Top 150 Contribuidores
    • Membro desde 09-22-2008
    • Posts 10
    • Pontos 245

    Como fazer uma classe de conexão com PostGreSQL

    Pessoal, eu dei uma pesquisada e creio que a conexão com PostGre necessita de uma camada de gerenciamento de dados como ODBC. Isso é correto?

     Pesquisando um pouco cheguei em uma classe mais ou menos assim:

     

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data.SqlClient;
    using System.Data.Odbc;

    namespace AcessoBancoPG
    {
        public class ConexaoBD
        {
            private string cnString = "DSN=dsnPostgreSQL;UID=postgres;PWD=*****;";

            public string CnString
            {
                get { return cnString; }
                set { cnString = value; }
            }

            private OdbcConnection cnPostgreSQL;

            public OdbcConnection CnPostgreSQL
            {
                get { return cnPostgreSQL; }
                set { cnPostgreSQL = value; }
            }

            public Boolean conectar()
            {
                this.CnPostgreSQL = new OdbcConnection(CnString);
                try
                {
                    cnPostgreSQL.Open();
                    return true;
                }
                catch (Exception)
                {
                    return false;
                }
            }
        }
    }

     Isso confirma?

     A string de conexão é essa? Ao testar ele diz que não foi possível localizar o banco.

     E como no meu form principal (supondo que a conexão funcione) Eu faria uma consulta e jogaria para um Grid?

    Algo assim?

                ConexaoBD conexao = new ConexaoBD();
                conexao.conectar();
                DataSet ds = new DataSet();
                OdbcDataAdapter da = new OdbcDataAdapter();
                OdbcCommandBuilder cb = new OdbcCommandBuilder(da);
                da.SelectCommand = new OdbcCommand("SELECT nome, bairro from CLIENTE limit 10", conexao.CnPostgreSQL);
                da.Fill(ds);

    • Pontos do post: 50
  • 09-25-2008 15:59 em resposta para

    • ramorim
    • Top 150 Contribuidores
    • Membro desde 06-06-2008
    • Santana do Livramento - RS
    • Posts 60
    • Pontos 655

    Responder: Como fazer uma classe de conexão com PostGreSQL

    Olá

    Eu uso o componente npgsql (que peguei do site do postgresql)  e fiz uma função para conectar no banco e fazer o sql:

     

         using Npgsql;

     declaracao de namespace...

            public static DataSet ExecutaSQL(string rSql,string rConnectionString)
            {

                DataSet dts = new DataSet();

                using (Npgsql.NpgsqlConnection cnn = new Npgsql.NpgsqlConnection(rConnectionString))
                {

                    string sql = rSql;

                    Npgsql.NpgsqlDataAdapter dtAdapter = new Npgsql.NpgsqlDataAdapter(sql, cnn);

                    dtAdapter.Fill(dts, "tmptmp");

                }

                return dts;

     

     Depois no projeto, criei uma variavel publica para passar o connectionstring, dessa forma:

    Server=localhost;Port=5432;User=seu_login;Password=sua_senha;Database=nome_do_banco_de_dados

     

    Espero que ajude ;-)

    • Pontos do post: 20
  • 09-25-2008 16:05 em resposta para

    • mfalthmann
    • Top 10 Contribuidores
    • Membro desde 04-01-2008
    • Cornélio Procópio, PR
    • Posts 161
    • Pontos 1,885

    Responder: Como fazer uma classe de conexão com PostGreSQL

    Opa tudo bem?

    Bom para Postgree tem esse data provider http://npgsql.projects.postgresql.org/ não precisa ficar utilizando ODBC, sobre a string de conexão pode verificar aqui http://www.connectionstrings.com/?carrier=postgresql

     Abraços.

    Márcio Fábio Althmann
    Arquiteto/Desenvolvedor - CDS Informática
    Email: marcio@sharpcode.com.br
    • Pontos do post: 5
  • 09-25-2008 17:06 em resposta para

    • diogo
    • Top 150 Contribuidores
    • Membro desde 09-22-2008
    • Posts 10
    • Pontos 245

    Responder: Como fazer uma classe de conexão com PostGreSQL

    Olá amigo, boa dica vou baixar npgsql e tentar começar a trabalhar com ele, sabe me dizer se é a melhor forma de fazer essa conexão?

    Uma dúvida sobre seu código é, você "conecta" toda vez que quer utilizar um comando SQL? pq pelo visto você passa a conection string pra ele.

    Att.

    • Pontos do post: 20
  • 09-25-2008 17:20 em resposta para

    • ramorim
    • Top 150 Contribuidores
    • Membro desde 06-06-2008
    • Santana do Livramento - RS
    • Posts 60
    • Pontos 655

    Responder: Como fazer uma classe de conexão com PostGreSQL

     Diogo

     

    Em "algum lugar" crio uma declaração para a connectionstring, tipo:

    public string ConnectionString()

    {

       return "string de conexao";

    }

    depois quando for chamar a funcao coloco

    executaSQL("select.........",connectionstring());

     

    Abraços

     

     

    • Pontos do post: 5
  • 10-29-2008 12:14 em resposta para

    • Fabiano Rech
    • Top 150 Contribuidores
    • Membro desde 08-13-2008
    • Cascavel/PR
    • Posts 3
    • Pontos 30

    Responder: Como fazer uma classe de conexão com PostGreSQL

     Eu uso a classe abaixo, ela me retonar uma conn, e a partir desta connection faço inserçoes e demais atualizacoes no db. Mas já aviso o npgsql é meio problematico :(

    using System;
    using System.Collections.Generic;
    using System.Text;
    using Npgsql;


    namespace Program.connection
    {

        class Conexao
        {
            public NpgsqlConnection getConection()
            {
                NpgsqlConnection conn = new NpgsqlConnection("Server=servidor;Port=5432;User Id=postgres;Password=senha;

    Database=banco;");
                return conn;
            }
        }
    }

     

    http://blog.fabianorech.com
    • Pontos do post: 20
  • 10-29-2008 12:21 em resposta para

    • diogo
    • Top 150 Contribuidores
    • Membro desde 09-22-2008
    • Posts 10
    • Pontos 245

    Responder: Como fazer uma classe de conexão com PostGreSQL

    Opa, muito obrigado, eu acabei por urilizar essa também ^^ Consegui fazer a maioria das operações, mas tudo via código. Não consegui nada como o Clica e Arrasta oferecido pelo SQL Server ou ODBC e etc... Aproveitando, com esses connectos, é só na unha mesmo? não tem como implementar esses kras em interface gráfica? se tiver tem como dar algum exemplo?
    • Pontos do post: 20
  • 10-29-2008 13:22 em resposta para

    • Fabiano Rech
    • Top 150 Contribuidores
    • Membro desde 08-13-2008
    • Cascavel/PR
    • Posts 3
    • Pontos 30

    Responder: Como fazer uma classe de conexão com PostGreSQL

     Ola Diogo, infelizmente é na unha mesmo, tem um driver experimental de pg com linq, mas eu usei e ainda não da para colocar nada em produção com ele.

    http://blog.fabianorech.com
    • Pontos do post: 5
Página 1 de 1 (8 itens)
Provido por Community Server (Commercial Edition), por Telligent Systems