C# y PostgreSQL: Guía completa de integración y trabajo con BD

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Por qué C# y PostgreSQL son una combinación poderosa que vale la pena dominar

\n\n

El mundo del desarrollo es una elección constante. Al elegir un lenguaje, un framework y una base de datos, estamos sentando las bases de un proyecto futuro. Y si has llegado a esta página, significa que te interesa una de las combinaciones más potentes y modernas en el desarrollo empresarial: C# y PostgreSQL.

\n\n

¿Por qué esta pareja? C# es un lenguaje maduro, fuertemente tipado, con un enorme ecosistema y un rendimiento fantástico. PostgreSQL es un sistema de gestión de bases de datos objeto-relacional que supera a muchos competidores en capacidades, estabilidad y soporte para tipos de datos complejos (por ejemplo, JSONB, arrays, búsqueda de texto completo). Juntos, te brindan no solo una "base de datos y un lenguaje", sino una herramienta flexible y escalable para crear aplicaciones web, microservicios y sistemas analíticos.

\n\n

En esta guía no solo repasaremos la teoría. Nos sumergiremos de lleno en la práctica: desde la instalación del controlador hasta la escritura de transacciones complejas. Aprenderás cómo configurar correctamente la conexión, realizar operaciones CRUD, usar ORM modernos (Entity Framework Core y Dapper) y evitar errores comunes. ¡Vamos allá!

\n\n

Paso 1. Preparación: qué necesitas instalar

\n

Antes de escribir código, asegurémonos de que tienes todo lo necesario.

\n
    \n
  • PostgreSQL — descarga la última versión desde el sitio oficial. Durante la instalación, recuerda el puerto (por defecto 5432) y la contraseña del superusuario postgres.
  • \n
  • Visual Studio / Rider / VS Code — cualquier IDE que admita .NET.
  • \n
  • .NET SDK (6.0, 7.0 o 8.0) — cuanto más nuevo, mejor. Usaremos .NET 8.
  • \n
\n\n

Ahora crea un nuevo proyecto. Para una aplicación de consola, es simple:

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

Lo más importante es instalar el proveedor para PostgreSQL. En el mundo .NET, este es el paquete Npgsql (se pronuncia "En-pi-es-kiu-el"). Es la base de todas las demás bibliotecas.

\n
dotnet add package Npgsql
\n\n

Paso 2. Primera conexión: verificamos la comunicación

\n

Crearemos un script muy simple que se conecte a la base de datos y muestre la versión del servidor. Esta es la mejor manera de asegurarse de que todo funciona.

\n\n
using Npgsql;\n\n// Cadena de conexión: ingresa tus datos\nstring connectionString = "Host=localhost;Port=5432;Database=postgres;Username=postgres;Password=tu_contraseña";\n\nusing var connection = new NpgsqlConnection(connectionString);\nconnection.Open();\n\n// Ejecutamos la consulta\nusing var command = new NpgsqlCommand("SELECT version();", connection);\nstring version = (string)await command.ExecuteScalarAsync();\n\nConsole.WriteLine($"¡Conexión exitosa! Versión de PostgreSQL: {version}");
\n\n

Ejecuta el código. Si ves en la consola algo como "PostgreSQL 16.1 on x86_64-pc-linux-gnu...", ¡lo has logrado! Si no, verifica la contraseña, el nombre del host y asegúrate de que el servicio de PostgreSQL esté en ejecución.

\n\n

Paso 3. Operaciones CRUD en C# con PostgreSQL

\n

Ahora que la conexión funciona, creemos una tabla y realicemos el ciclo completo: Create, Read, Update, Delete.

\n\n

Creación de la tabla

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

Inserción de datos (INSERT)

\n
// ¡Usamos una consulta parametrizada para protegernos de la inyección SQL!\nstring insertSql = "INSERT INTO users (name, email) VALUES (@name, @email) RETURNING id;";\n\nusing var cmdInsert = new NpgsqlCommand(insertSql, connection);\ncmdInsert.Parameters.AddWithValue("@name", "Ale                

Blogs

Book Recommendations