Usuário com melhor resposta
C# Conectar base PostgreSQL

Pergunta
-
Amigos,
sou novo em .net, estou tentando fazer uma conexao com o postgreSQL, já encontrei alguns exemplos na net mas gostaria de saber o que tem de mais moderno para a conexão com bases postgreSQL e qual a melhor forma de conexão, digo, odbc, oledb, etc.?
Provider:
using System;
using System.Data;
using Npgsql;
OODBC:
using System.Data;
using System.Data.Odbc;
Respostas
-
Fernando e Kyrla.
Apos muitas pesquisas conseguir fazer funcionar os Drivers ODBC, então segue os precedimentos abaixo:
1º Instalar Driver PostgreSQL ODBC para win x32 (psqlodbc_09_00_0310)
2º Em Iniciar > Executar > Colar o comando > C:\WINDOWS\SysWOW64\odbcad32.exe > Abrira a Janela de "Administrador de Fonte de Dados ODBC" 32bits.
3º Aba: Fontes de Dados de Usuário > Adicionar > Selecione o "Drive PostgreSQL Unicode" > Informe: Data Source: PostgreSQL > Description: PostgreSQL > Databese: Nome de sua base > SSL Mode: Disable > Server: Nome de seu servidor (se tiver instalado em sua maquina, de o nome de localhost) > Port: Numero da Porta (se tiver instalado em sua maquina, numero: 5432) > User Name: Nome do usuario > Password: Senha.
4º Clique em TEST para verificar a conexão.
5º Se tiver OK salve e feche a Janela.
* Para criar um string de conexão: Ctrl + Alt + S (Dabase Explorer)
1. Clique com o botão direito do Maouse em "Add Connection"
2. Definir o Data Source: Microsoft ODBC Data Source (ODBC)
3. Use User ou System data Source name: PostgreSQL (Nome que dei ao meu data source, acima)
4. user name e password não são obrigatórios, mas é recomendável informar.
5. sera gerado uma string de conexão, semelhante a esta: Dsn=PostgreSQL;uid=postgres
OK Para finalizar.
------------------------------------------------------
WIN 7 64bits
POSTGRESQL 64bits
ODBC 32bits (psqlodbc_09_00_0310)
Microsoft Visual Web Developer 2010 Express
------------------------------------------------------
- Sugerido como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator sexta-feira, 19 de agosto de 2011 16:35
- Editado JoaoSSSilva sexta-feira, 19 de agosto de 2011 16:36
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 19 de agosto de 2011 16:57
Todas as Respostas
-
Olá João,
Acho que o melhor eh utilizar o provider de acesso a dados para o mesmo.
Não tenho certeza se existe algo entre o Entity Framework e o PostgreSQL...
Para o PostgreSQL existe este provider:
http://pgfoundry.org/projects/npgsql/
Faça o download da ultima versão, que é de 25 de Março de 2011
O Thiago Cruz Soares fez uma avaliação da versão 1.0 dele a alguns anos:
http://thiagocsoares.wordpress.com/2006/10/10/provider-postgresql-para-net/
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique -
Fernando. obrigado pela pronta resposta.
Lá existe uma indinidade de arquivos para download. qual deles baixo, vaja abaixo:
Preview 1 2011-05-12 00:08 - Npgsql.Provider.zip
1.74 MB 5,041 Any .zip - README.TXT
139 bytes 2,934 Any text _npgsql2
Npgsql2.0.11.91 2011-03-25 02:18 - Npgsql2.0.11.91-apidocs-chm.zip
410 KB 3,900 Any .zip - Npgsql2.0.11.91-apidocs-html.zip
1.42 MB 2,027 Any .zip - Npgsql2.0.11.91-bin-mono2.0.tar.bz2
597 KB 717 Any .bz2 - Npgsql2.0.11.91-bin-mono2.0.zip
602 KB 1,864 Any .zip - Npgsql2.0.11.91-bin-ms.net.zip
465 KB 4,446 Any .zip - Npgsql2.0.11.91-bin-ms.net3.5sp1.zip
511 KB 4,603 Any .zip - Npgsql2.0.11.91-bin-ms.net4.0.zip
537 KB 6,981 Any .zip - Npgsql2.0.11.91.src.tar.bz2
2.47 MB 1,327 Any Source .bz2 - Npgsql2.0.11.91.src.zip
3.05 MB 3,346 Any Source .zip -
João,
Vc verá que na página de download existe um tópico chamado preview 1
Baixe através de um dos links que estão logo abaixo com o título Npgsql.Provider.zip
Depois de feito o download e extraido o conteúdo do arquivo ZIP, acesse a pasta \pgsql-2.0.11.91\bin\Debug4 e utilize o binário Npgsql.dll
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique -
-
Olá João,
Sim, vc prefica fazer uma referência a dll Npgsql.dll
Não precisa jogar o projeto Npgsql-2.0.11.91 no seu... a referência a dll Npgsql.dll é feita para que vc não inclua dependa deste código em sua solução...
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique -
certo. ocorreu um erro:
segue abaixo a classe:
public class cnxPostgre
{
//public static void Main(String[] args)
public void PostgreSQL()
{
int i;
NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=admin;Database=locadora;");
conn.Open();
NpgsqlCommand command = new NpgsqlCommand("select * from tablea", conn);
try
{
NpgsqlDataReader dr = command.ExecuteReader();
while (dr.Read())
{
for (i = 0; i < dr.FieldCount; i++)
{
Console.Write("{0} \t", dr[i]);
}
Console.WriteLine();
}
}
finally
{
conn.Close();
}
}
}
erro:
Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies. O sistema não pode encontrar o arquivo especificado.
Source Error:
Line 14: { Line 15: int i; Line 16: NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=admin;Database=locadora;"); Line 17: conn.Open();
-
Cara,
Agora fiquei em dúvida qual a DLL correta...
Ou é essa da pasta "\pgsql-2.0.11.91\bin\Debug4" e vc terá de fazer referência a dll Mono.Security.dll (q esta também no mesmo diretório)
Ou a DLL "Npgsql.Provider.dll" que está na pasta "Npgsql.Provider2\bin\Debug"
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique -
-
-
Testou a primeira?
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique -
-
Olá João,
A Kyrla utilizou a aba Server Explorer (Ctrl + Alt + S), depois selecionou a opção DataConnections, e depois clicou com o botão direito e clicou em "Add Connection"...
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique -
-
talvez o problema esteja no win 7 64bits.
os unicos driver que funcionam na maquina são:
psqlodbc_09_00_0101-x64.zip 2010-10-16 15:28:54 1.7 MB
psqlodbc_09_00_0200-x64.zip 2010-10-30 16:18:54 1.7 MB
psqlodbc_09_00_0300-x64.zip 2011-05-09 12:56:07 1.7 MB
psqlodbc_09_00_0310-x64.zip 2011-07-08 15:15:37 1.7 MB
consigo estabelar conexao com vb6, criando arquivo .udl e muito mais, mas conectar via c#.net nada! -
Fernando e Kyrla.
Apos muitas pesquisas conseguir fazer funcionar os Drivers ODBC, então segue os precedimentos abaixo:
1º Instalar Driver PostgreSQL ODBC para win x32 (psqlodbc_09_00_0310)
2º Em Iniciar > Executar > Colar o comando > C:\WINDOWS\SysWOW64\odbcad32.exe > Abrira a Janela de "Administrador de Fonte de Dados ODBC" 32bits.
3º Aba: Fontes de Dados de Usuário > Adicionar > Selecione o "Drive PostgreSQL Unicode" > Informe: Data Source: PostgreSQL > Description: PostgreSQL > Databese: Nome de sua base > SSL Mode: Disable > Server: Nome de seu servidor (se tiver instalado em sua maquina, de o nome de localhost) > Port: Numero da Porta (se tiver instalado em sua maquina, numero: 5432) > User Name: Nome do usuario > Password: Senha.
4º Clique em TEST para verificar a conexão.
5º Se tiver OK salve e feche a Janela.
* Para criar um string de conexão: Ctrl + Alt + S (Dabase Explorer)
1. Clique com o botão direito do Maouse em "Add Connection"
2. Definir o Data Source: Microsoft ODBC Data Source (ODBC)
3. Use User ou System data Source name: PostgreSQL (Nome que dei ao meu data source, acima)
4. user name e password não são obrigatórios, mas é recomendável informar.
5. sera gerado uma string de conexão, semelhante a esta: Dsn=PostgreSQL;uid=postgres
OK Para finalizar.
------------------------------------------------------
WIN 7 64bits
POSTGRESQL 64bits
ODBC 32bits (psqlodbc_09_00_0310)
Microsoft Visual Web Developer 2010 Express
------------------------------------------------------
- Sugerido como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator sexta-feira, 19 de agosto de 2011 16:35
- Editado JoaoSSSilva sexta-feira, 19 de agosto de 2011 16:36
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 19 de agosto de 2011 16:57
-
Boa! Mandou bem! :)
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique