Neste artigo será mostrado a utilização do banco de dados PostGreSQL em uma página ASP.NET, utilizando a linguagem C#.

Introdução

É comum encontrarmos artigos, tutoriais, dicas falando especificamente do banco de dados SQL Server com ASP.NET, é claro que não tem nada de mais nisso, até por que ambos são da mesma família e ainda por cima é um dos melhores banco de dados do mercado, mas nem todo projeto é necessário/possível estar utilizando o mesmo, e os motivos são vários, além é claro podemos estar citando desenvolvedores que tenham mais experiência em outros banco de dados. Como foi citado acima, estaremos neste artigo mostrando como trabalhar com banco de dados em uma página ASP.NET, para isso vamos estar utilizando o provider NpgSQL para acesso. Recomendo que todos tenham alguma experiência com esse banco de dados, já que esse não é o foco do artigo. O exemplo construído no artigo será um simples projeto, com objetivo principal de exibir uma lista de clientes.

Npgsql

Npgsql é um provider .NET para PostGreSQL. Ele permite que qualquer aplicação desenvolvida em .NET Framework acesse o banco de dados. Seu código foi escrito totalmente em C#. É compatível com banco de dados PostGreSQL 7.x ou versões superiores. Você encontra o mesmo no site http://npgsql.projects.postgresql.org, acessando a guia Download.

Banco de Dados

Como a idéia principal do artigo é estar criando uma simples aplicação, estaremos criando uma tabela de Clientes, lembrando que estou utilizando como gerenciador do banco de dados, o PgAdmin III, que já vem incluso no pacote de instalação do banco de dados. Veja abaixo o código SQL do mesmo, onde está sendo utilizada a base de dados postgres, que por padrão já vem criado.


CREATE TABLE clientes
(
	id serial,
	nome character varying(30),
	email character varying(50)
) WITH (OIDS=FALSE)
;

Criando Projeto

Depois de abordado alguns conceitos e definição da base de dados, iniciaremos criando nosso projeto, para isso é importante que você possua o Visual Studio ou Visual Web Developer Express (versão gratuita do Visual Studio para desenvolvimento de web sites), no meu caso estarei utilizando a primeira opção (Visual Studio 2008).

Clique em File > New > Web Site, escolha ASP.NET Web Site, e Linguagem C#, veja a Figura abaixo.

 

Veja que automaticamente o Visual Studio criou um arquivo Default.aspx, estaremos utilizando o mesmo para criar nossa interface. Na categoria Data você vai encontrar o controle Gridview, adicione o mesmo a sua página.

 

Logo após você pode estar selecionando alguma formatação para o mesmo, já que sua Default é basicamente uma tabela sem formatação alguma, no exemplo foi escolhido a Professional.

 

Já temos nosso controle configurado, agora já podemos dar inicio a conexão com o banco de dados e exibir o resultado do mesmo, mas para isso precisamos adicionar ao projeto a referencia das dll do mesmo. Clique com botão direto em seu projeto, e escolha a opção Add Reference, logo após na janela que será aberta, selecione a guia Browse e adicione os arquivos Npgsql.dll e Mono.Security.dll.Veja na figura abaixo.

 

 

Conexão e Exibindo Registros

Agora sim estamos pronto para conectar ao banco de dados e exibir os registros no Gridview. Para isso estaremos codificando dentro do evento Page_Load da página Default.aspx, que pode ser acessado em ViewCode.Clique com o botão direito na página e você visualizara a mesma.

 

 

 

Para quem esta acostumado a utilizar os famosos SqlConnection e SqlCommand não vai encontrar dificuldade alguma ao utilizar NpgsqlConnection e NpgsqlCommand, abaixo descrito o que cada um faz.

NpgsqlConnection = Objeto que representa uma conexão com o banco de dados.NpgsqlCommand = Objeto que representa uma instrução SQL ou StoredProcedure que é executada em um banco de dados.Lembrando que não estaremos tratando nenhum erro e também não estamos fechando a conexão com o banco de dados, por isso é importante você estar tratando isso em um possível projeto. Na imagem abaixo basicamente temos uma variável que contem uma Connection String para a conexão com o banco de dados, é claro que o ideal também é ter utilizado ela em um Webconfig, mas por ser um exemplo didático não precisaremos estar nos preocupando quanto a isso, logo após estamos definindo um objeto denominado “con” do tipo NpgsqlConnection, e já inicializando o mesmo passando como parâmetro a Connection String, que está na variável   “ConnectionStr”, como descrito acima.Com a conexão já instanciada podemos criar nosso objeto NpgsqlCommand, passando dois parâmetros, o primeiro a string SQL e o segundo a referencia de um objeto de conexão, no caso “con” . Para finalizar, chamamos o método Open(), para abrir a conexão em seguida na propriedade DataSource do GridView é indicado o objeto “cmd”, junto com o método “ExecuteReader”, e por final é chamado o evento DataBind().
 
Lembrando também que é preciso indicar a NameSpace do NpgSql.

 


Default.aspx.cs



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
		string ConnectionStr = "Server=localhost;Port=5432;Database=postgres;User Id=postgress; Password=1234";
		NpgsqlConnection con = new NpgsqlConnection(ConnectionStr);
		NpgsqlCommand cmd = new NpgsqlCommand("SELECT * FROM clientes", con);
		con.Open();
		GridView1.DataSource = cmd.executeReader();
		GridView1.DataBind();
    }
}


Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>





    


    

Conclusão

E com isso finalizamos nosso artigo de ASP.NET e Postgresql, concentramos o artigo em não deixar nenhuma dúvida, e por isso de ser especifico na criação de todos os controles e objetos. Você com base neste artigo, com certeza já vai ter um grande esboço para realização de um possível projeto mais complexo com Postgresql. É claro que o ideal como citei acima é tratar todos possíveis erros que podem gerar ao abrir uma conexão e executar comandos SQL no banco de dados e principalmente fechar a conexão com o servidor, além é claro de criar o projeto em camadas, mais por ser exemplos didáticos não entramos nesse mérito, espero que vocês tenham gostado e principalmente entendido.

Grande abraço e até a próxima.