C# e PostgreSQL: Guia Completo de Integração e Banco de Dados

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que C# e PostgreSQL são uma dupla poderosa que vale a pena dominar

\n\n

No mundo do desenvolvimento, cada escolha importa. Ao selecionar uma linguagem, um framework e um banco de dados, você está, na prática, construindo os alicerces do seu projeto. Se você chegou até aqui, é porque tem interesse em uma das combinações mais modernas e robustas para desenvolvimento enterprise: C# e PostgreSQL.

\n\n

Por que essa dupla? O C# é uma linguagem madura, fortemente tipada, com um ecossistema gigante e desempenho excepcional. O PostgreSQL é um SGBD objeto-relacional que supera muitos concorrentes em recursos, estabilidade e suporte a tipos de dados complexos (como JSONB, arrays e busca em texto completo). Juntos, eles oferecem muito mais do que "um banco e uma linguagem": são uma ferramenta flexível e escalável para criar aplicações web, microsserviços e sistemas analíticos.

\n\n

Neste guia, não vamos apenas passar pela teoria. Vamos mergulhar de cabeça na prática: desde a instalação do driver até a escrita de transações complexas. Você aprenderá a configurar a conexão corretamente, executar operações CRUD, usar ORMs modernos (Entity Framework Core e Dapper) e evitar as armadilhas mais comuns. Vamos nessa!

\n\n

Passo 1. Preparação: o que você precisa instalar

\n

Antes de escrever código, vamos garantir que você tenha tudo o que precisa.

\n
    \n
  • PostgreSQL — baixe a versão mais recente do site oficial. Durante a instalação, anote a porta (padrão 5432) e a senha do superusuário postgres.
  • \n
  • Visual Studio / Rider / VS Code — qualquer IDE que suporte .NET.
  • \n
  • .NET SDK (6.0, 7.0 ou 8.0) — quanto mais novo, melhor. Usaremos o .NET 8.
  • \n
\n\n

Agora crie um novo projeto. Para um aplicativo de console, é simples:

\n
dotnet new console -n CsharpPostgresDemo\ncd CsharpPostgresDemo
\n\n

O mais importante é instalar o provedor para PostgreSQL. No mundo .NET, isso é o pacote Npgsql (pronuncia-se "En-Pi-Es-Ql"). Ele é a base para todas as outras bibliotecas.

\n
dotnet add package Npgsql
\n\n

Passo 2. Primeira conexão: testando a comunicação

\n

Vamos criar um script simples que se conecta ao banco e exibe a versão do servidor. Esta é a melhor forma de garantir que tudo está funcionando.

\n\n
using Npgsql;\n\n// String de conexão: insira seus dados\nstring connectionString = "Host=localhost;Port=5432;Database=postgres;Username=postgres;Password=sua_senha";\n\nusing var connection = new NpgsqlConnection(connectionString);\nconnection.Open();\n\n// Executa a consulta\nusing var command = new NpgsqlCommand("SELECT version();", connection);\nstring version = (string)await command.ExecuteScalarAsync();\n\nConsole.WriteLine($"Conexão bem-sucedida! Versão do PostgreSQL: {version}");
\n\n

Execute o código. Se você vir algo como "PostgreSQL 16.1 on x86_64-pc-linux-gnu..." no console, conseguiu! Caso contrário, verifique a senha, o nome do host e certifique-se de que o serviço PostgreSQL está em execução.

\n\n

Passo 3. Operações CRUD em C# com PostgreSQL

\n

Agora que a conexão está funcionando, vamos criar uma tabela e executar o ciclo completo: Create, Read, Update, Delete.

\n\n

Criando a tabela

\n
string createTableSql = @"\n    CREATE TABLE IF NOT EXISTS usuarios (\n        id SERIAL PRIMARY KEY,\n        nome VARCHAR(100) NOT NULL,\n        email VARCHAR(255) UNIQUE NOT NULL,\n        criado_em TIMESTAMP DEFAULT NOW()\n    );";\n\nusing var cmdCreate = new NpgsqlCommand(createTableSql, connection);\nawait cmdCreate.ExecuteNonQueryAsync();\nConsole.WriteLine("Tabela usuarios criada.");
\n\n

Inserindo dados (INSERT)

\n
// Usamos consulta parametrizada — proteção contra SQL injection!\nstring insertSql = "INSERT INTO usuarios (nome, email) VALUES (@nome, @email) RETURNING id;";\n\nusing var cmdInsert = new NpgsqlCommand(insertSql, connection);\ncmdInsert.Parameters.AddWithValue("@nome", "João");                

Blogs

Book Recommendations