C# - PostGreSQL - CRUD Básico - I


Neste artigo eu vou abordar como usar o banco de dados PostGreSQL em uma aplicação C# realizando as operações básicas de inclusão, exclusão e edição de dados : o CRUD - Create, Update e Delete.

O PostgreSQL é um dos resultados de uma ampla evolução que se iniciou com o projeto Ingres, desenvolvido na Universidade de Berkeley, Califórnia.

Atualmente, o PostgreSQL é um dos SGBDs (Sistema Gerenciador de Bancos de Dados) de código aberto mais avançados, contando com recursos como:

  • Consultas complexas
  • Chaves estrangeiras
  • Integridade transacional
  • Controle de concorrência multi-versão
  • Suporte ao modelo híbrido objeto-relacional
  • Gatilhos
  • Visões
  • Linguagem Procedural em várias linguagens (PL/pgSQL, PL/Python, PL/Java, PL/Perl) para Procedimentos armazenados
  • Indexação por texto
  • Estrutura para guardar dados Georeferenciados PostGIS

O PostgreSQL segue a risca o padrão SQL e é totalmente gratuito sem restrições.
O PostgreSQL pode ser comprado por uma empresa como foi o MySQL pela Oracle ?
Não, não há uma empresa que detenha os direitos do código fonte. Não há uma empresa que empregue todos os desenvolvedores.
Novas funcionalidades são introduzidas somente se houver um consenso da comunidade.
http://pt.wikipedia.org/wiki/PostgreSQL

Do que vamos precisar ?

Naturalmente vamos precisar do banco de dados PostGreSQL que você pode baixar aqui:

Saiba que o PostGreSQL é um banco de dados totalmente gratuito e com uma boa documentação e desempenho e que pode ser considerado para ser usado em aplicações comerciais. A versão que eu vou usar neste artigo é a versão PostGreSQL 9.2.

Vamos precisar de uma ferramenta para administrar o PostGreSQL e eu vou usar o pgAdmin III que já é instalada quando você instalada o PostGreSQL. A versão instalada do pgAdmin III é a 1.16.0.

O processo de instalação é simples bastando seguir o roteiro padrão e informar a senha para o usuário do banco de dados.

Vamos precisar também de um .Net Data Provider para acesso ao PostgreSQL e eu vou usar o Npgsql2.0.12.0-bin-ms.net4.0 que você pode baixar aqui: http://npgsql.projects.pgfoundry.org/

Após baixar o provedor você deve descompactar o arquivo em uma pasta loca do seu computador e nesta pasta devem estar presentes os arquivos Npgsql.dll e Mono.Security.dll dentre outros que iremos referenciar em nosso projeto.

Você pode consultar a documentação do banco de dados PostGreSQL aqui: http://www.postgresql.org/docs/9.2/interactive/index.html

Criando o banco de dados e a tabela no pgAdmin III

Quando você abrir o pgAdmin verá seguinte janela:

Na janela à esquerda temos as conexões com o servidor de banco de dados. Inicialmente temos uma conexão padrão.

Durante a instalação o PostGreSQL já configurou o acesso ao nosso servidor local.

Clique duas vezes sobre o item PostGreSQL 9.2 (localhost:5432) para abrir a janela de conexão como servidor e informar a senha que você definiu durante a instalação:

Após o logo teremos a janela abaixo:

Em objeto browser temos os seguintes itens:

Se você clicar em (+) da opção Databases verá que já existe um banco de dados definido como Postgresql que foi criado automaticamente na instalação. Esse banco de dados não será utilizado e não pode ser excluído por se tratar de um banco utilizado para administração do Postgresql.

Vamos criar nosso banco de dados. Clique com o botão direito do rato em cima de Databases e escolha a opção New Database:

Na janela New DataBase informe o nome do banco de dados - Cadastro e define o Owner como sendo o usuário postgres:

Ao clicar em OK você verá na em Object Browser o banco de dados Cadastro criado e os itens : Catalogs, Extensions, Schemas e Slony Replication;

Os objetos do nosso banco de dados podem ser vistos clicando em (+) Schemas e a seguir em public;

Veremos uma lista contendo objetos do banco de dados :

Dentre esses objetos vamos descrever resumidamente os mais usados:

Vamos criar a nossa tabela funcionarios que deverá possuir a seguinte estrutura:

Para isso clique com o botão direito sobre o objeto Tables() e selecione New Table;

A seguir, na guia Properties, vamos iniciar definindo o nome da tabela - funcionarios, o Owner= postgres e o Schema=public;

A seguir na guia Columns vamos definir as colunas da tabela informando seu nome, tipo de dados e tamanho (quando exigido):

Para definir a chave primaria na guia Constraints, clique no botão Add e informe o campo id clicando em OK;

Agora vamos definir o campo id como sendo do tipo autoincremental de forma que o seu valor seja incrementado automaticamente;

Para isso temos que criar uma sequência primeiro. Clique com botão direito do mouse sobre Sequences e selecione New Sequence;

A seguir informe o nome - serial, o Owner=postgres e o Schema=public;

Agora na guia Definition vamos definir os valores para a sequência conforme abaixo:

Finalmente podemos alterar a definição da coluna id da nossa tabela para torná-la autoincremental clicando no menu SQL e definindo a instrução SQL conforme mostrada a seguir:

ALTER TABLE funcionarios ALTER COLUMN id SET DEFAULT nextval('serial')

  • A restrição DEFAULT atribui um valor padrão ao campo;
  • A função nextval retorna o próximo valor da sequência, sua sintaxe é: nextval('nome_da_sequence');
  • Com isso temos a estrutura da nossa tabela funcionarios montada e pronta para ser usada.

    Se você desejar pode incluir dados na tabela diretamente.

    Selecione a tabela e clique no menu View Data para exibir a janela Edit Data;

    Você pode clicar na linha e digitar diretamente os dados na tabela:

    Na segunda parte do artigo irei criar a aplicação C# para acessar e dar manutenção na tabela funcionarios: C# - PostGreSQL - CRUD Básico - II

    1Co 2:14 Ora, o homem natural não aceita as coisas do Espírito de Deus, porque para ele são loucura; e não pode entendê-las, porque elas se discernem espiritualmente.

    1Co 2:15 Mas o que é espiritual discerne bem tudo, enquanto ele por ninguém é discernido.

    1Co 2:16 Pois, quem jamais conheceu a mente do Senhor, para que possa instruí-lo? Mas nós temos a mente de Cristo.

    Referências:


    José Carlos Macoratti