Desenvolvimento - Visual Basic .NET

Acessando PostgreSQL com VB.NET via NpgSQL

Este artigo mostra como retornar registros de uma banco de dados PostgreSQL na linguagem vb.NET através do NpgSQL.

por Marcus Sá



Uma das maneiras mais rápidas de acesso ao banco de dados PostgreSQL (http://www.postgresql.org.br) é o NpgSQL (http://gborg.postgresql.org/project/npgsql/)

O NpgSQL é um .Net Data Provider feito para o acesso ao PostgreSQL escrito em C#, ele possui um mecanismo de pool de conexões, o pool de conexões por sua vez otimiza o acesso aos dados através de uma melhor utilização das conexões feitas com o banco de dados.

Bom, chega de tanta teoria e mãos a massa:

Primeiro vamos criar as tabelas e fazer o inserts

Criando as tabela.

Presumindo que você conheça o básico do SQL ai está uma tabela na qual trabalharemos neste artigo.

CREATE TABLE usuarios (

Login varchar(12) NOT NULL UNIQUE,

Senha VARCHAR(12) NOT NULL,

Nome VARCHAR(100),

DataUltimoAcesso date,

QuantidadeAcessos int,

PRIMARY KEY(login)

) WITH OIDS;

Após executar o script de criação das tabelas vamos a criação dos registros.

INSERT INTO usuarios (Login, Senha, Nome, DataUltimoAcesso, QuantidadeAcessos)

VALUES ('marcus', 'mar', 'Marcus Sá', CURRENT_DATE, 0);

INSERT INTO usuarios (Login, Senha, Nome, DataUltimoAcesso, QuantidadeAcessos)

VALUES ('carla', 'car', 'Carla Garcia', CURRENT_DATE, 0);

INSERT INTO usuarios (Login, Senha, Nome, DataUltimoAcesso, QuantidadeAcessos)

VALUES ('fabio', 'fab', 'Fábio Sá', CURRENT_DATE, 0);

INSERT INTO usuarios (Login, Senha, Nome, DataUltimoAcesso, QuantidadeAcessos)

VALUES ('elaine', 'ela', 'Elaine Beatriz', CURRENT_DATE, 0);

Pronto, tabela criada com alguns registros para serem consultados(neste primeiro artigo comentaremos apenas consulta ao PostgreSQL, aguarde os próximos) vamos ao código vb.net, tentei comentar o máximo que pude este código espero que ele ajude bastante!

'Importa o Npgsql que está na pasta bin

Imports Npgsql

Imports System.Data

Partial Class _Default

Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

' Declara e atribui a string de conexão

Dim Conexao As String = "Server=localhost;Port=5432;UserId=postgres;Password=0000;Database=teste"

'Instancia NpgsqlConnection na variavel conn

Dim conn As NpgsqlConnection = New NpgsqlConnection(Conexao)

Try

' Abre a conexão

conn.Open()

'Declara e atribui a Query

Dim SQL As String = "Select * From Clientes"

'Instancia o NpgsqlDataAdapter que é responsavel pela comunicação isto significa efetuar a 'leitura dos dados de um banco de dados e preencher um dataset, efetuar a manutenção de 'dados e, em seguida, escrever de volta no banco de dados com as informações atualizadas do 'dataset. Na verdade, um data adapter pode mover dados entre qualquer fonte de dados e um 'dataset.

Dim da As Npgsql.NpgsqlDataAdapter = New NpgsqlDataAdapter(SQL, conn)

'Instacia um DataSet

Dim ds As DataSet = New DataSet()

'Popula o DataAdapter com o que retornou do DataSet

da.Fill(ds, "Clientes")

'Atribiu um Datasource a Grid

GridView1.DataSource = ds.Tables("Clientes").DefaultView

'Aciona a leitura da fonte de dados

GridView1.DataBind()

Catch ex As Exception

Finally

conn.Close()

End Try

End Sub

End Class

Resultado:

Marcus Sá

Marcus Sá - Desenvolvedor de sistemas web na plataforma.NET com uso de Ajax, Infragistics entre outros e Ruby On Rails, trabalha com banco de dados PostgreSQL, SQL Server e MySQL. Cursando o Segundo semestre do curso tecnólogo em Analise e Desenvolvimento de Software - Ênfase na Gestão da Qualidade de Processos. Interessado em tecnologias de desenvolvimento e teste e aplicações de metodologias que aumente a qualidade e produtividade dos serviços prestados na área de TI.
Mantém um blog no qual fala sobre tecnologia:
http://www.sa-marcus.blogspot.com/.