Integração com PostgreSQL em C#

Neste post, vamos abordar a integração de um sistema com banco de dados, usando C# e PostgreSQL. Desenvolvemos anteriormente um sistema simples para registrar alunos em um curso (Windows Forms), mas as informações eram estáticas. Quando fechávamos o sistema, todos os dados eram perdidos. O objetivo agora é integrar com um banco de dados para que esses registros sejam persistidos, ou seja, mantidos no banco e possam ser consultados sempre que necessário.

1. Instalação do PostgreSQL

A primeira etapa é instalar o PostgreSQL. O processo de instalação é simples:

  1. Baixe o PostgreSQL: Downloads.
  2. Execute o arquivo de instalação, siga as instruções clicando em “Next” e configure a senha do banco de dados.
  3. Defina a porta do servidor, que geralmente é a padrão.
  4. Finalize a instalação.

Após a instalação, abra o pgAdmin (ferramenta de gerenciamento do PostgreSQL) para criar e gerenciar os bancos de dados.

2. Configuração do Banco de Dados

Com o PostgreSQL instalado:

  1. No pgAdmin, crie uma nova conexão clicando com o botão direito em “Servers” e selecionando “Create Server”.
  2. Nomeie o servidor (ex: CSharp) e configure a conexão usando localhost e a porta padrão.
  3. Insira a senha definida na instalação.
  4. Com a conexão criada, crie um novo banco de dados chamado “portal_do_aluno”.

Agora, o banco de dados está vazio, sem tabelas. Vamos criar uma tabela chamada alunos com as seguintes colunas:

  • id: do tipo serial, serve como chave primária.
  • nome: string com até 250 caracteres.
  • curso: string com até 250 caracteres.
  • idade: do tipo inteiro.

Com a estrutura pronta, podemos agora integrar nosso sistema C# ao banco de dados.

3. Integração com C#

Abra o projeto no Visual Studio. Este é o mesmo projeto utilizado no post anterior. No entanto, agora vamos adicionar a persistência dos dados no banco de dados PostgreSQL.

Pacotes Necessários

Instale os pacotes necessários para a integração com o PostgreSQL:

  1. Npgsql: pacote para conectar o PostgreSQL com C#.
  2. Dapper: pacote que facilita a execução de comandos SQL e mapeamento de objetos.

Instale-os usando o gerenciador de pacotes NuGet:

4. Criando a Conexão com o Banco

Na arquitetura do projeto, crie uma pasta chamada Infra (ou infraestrutura). Dentro dela, crie uma classe chamada DbConnection. Esta classe será responsável por abrir e fechar a conexão com o banco de dados.

Estrutura da classe de conexão

A classe implementa a interface IDisposable, garantindo que a conexão seja fechada automaticamente quando não estiver mais sendo usada.

5. Criando o Repositório de Alunos

Agora, crie uma classe chamada AlunoRepository. Nela, implementaremos os métodos para adicionar e listar alunos no banco de dados.

Método para adicionar e listar alunos

 

Utilizamos o Dapper para facilitar a execução das queries SQL e o mapeamento entre os dados do banco e a classe Aluno.

6. Modificando o Sistema para Integrar com o Banco

No sistema, após adicionar um aluno à lista local, também o adicionamos no banco de dados:

Também podemos criar um método para carregar os alunos do banco de dados ao iniciar a aplicação:

7. Testando a Aplicação

Agora que integramos o sistema com o banco de dados, podemos testar:

  1. Adicione um novo aluno e veja ele sendo inserido tanto na lista local quanto no banco de dados.
  2. Feche a aplicação e abra novamente. Os alunos que estavam no banco de dados serão carregados automaticamente.
  3. Regras de negócio, como não permitir duplicação de alunos, continuam funcionando.

Conclusão

Neste post, implementamos a integração de um sistema em C# com um banco de dados PostgreSQL. Usamos Npgsql para conectar ao banco e Dapper para executar as queries de forma mais simples. Agora, temos um sistema onde os dados persistem no banco, mesmo após a aplicação ser fechada.

Se você quiser acompanhar o tutorial completo, acesse o vídeo e inscreva-se no canal do BraboDev.

 Nele estava a vida, e a vida era a luz dos homens.”

João 1:4