C# und PostgreSQL: Komplette Anleitung zur Integration und Datenbankarbeit

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Warum C# und PostgreSQL ein unschlagbares Duo sind

\n\n

In der Softwareentwicklung geht es ständig um Entscheidungen. Die Wahl der Programmiersprache, des Frameworks und der Datenbank legt das Fundament für jedes Projekt. Wenn Sie hier gelandet sind, interessieren Sie sich wahrscheinlich für eine der leistungsstärksten und modernsten Kombinationen im Enterprise-Bereich: C# und PostgreSQL.

\n\n

Warum genau dieses Paar? C# ist eine ausgereifte, streng typisierte Sprache mit einem riesigen Ökosystem und fantastischer Leistung. PostgreSQL ist ein objektrelationales Datenbanksystem, das viele Konkurrenten in puncto Funktionsumfang, Stabilität und Unterstützung komplexer Datentypen (wie JSONB, Arrays, Volltextsuche) übertrifft. Zusammen bieten sie Ihnen nicht nur "eine Datenbank und eine Sprache", sondern ein flexibles, skalierbares Werkzeug für Webanwendungen, Microservices und Analysesysteme.

\n\n

In dieser Anleitung bleiben wir nicht bei der Theorie stehen. Wir tauchen tief in die Praxis ein: von der Treiberinstallation bis zum Schreiben komplexer Transaktionen. Sie lernen, wie Sie Verbindungen richtig konfigurieren, CRUD-Operationen durchführen, moderne ORMs (Entity Framework Core und Dapper) einsetzen und typische Fallstricke vermeiden. Los geht's!

\n\n

Schritt 1: Vorbereitung – Was Sie installieren müssen

\n

Bevor wir Code schreiben, stellen wir sicher, dass alles Nötige bereit ist.

\n
    \n
  • PostgreSQL – Laden Sie die neueste Version von der offiziellen Website herunter. Merken Sie sich während der Installation den Port (standardmäßig 5432) und das Passwort für den Superuser postgres.
  • \n
  • Visual Studio / Rider / VS Code – Jede IDE, die .NET unterstützt.
  • \n
  • .NET SDK (6.0, 7.0 oder 8.0) – Je neuer, desto besser. Wir verwenden .NET 8.
  • \n
\n\n

Erstellen Sie nun ein neues Projekt. Für eine Konsolenanwendung geht das ganz einfach:

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

Der wichtigste Schritt ist die Installation des PostgreSQL-Anbieters. In der .NET-Welt ist das das Paket Npgsql (ausgesprochen "En-Pi-Es-Q-El"). Es ist die Grundlage für alle anderen Bibliotheken.

\n
dotnet add package Npgsql
\n\n

Schritt 2: Erste Verbindung – Testen der Verbindung

\n

Wir erstellen ein einfaches Skript, das eine Verbindung zur Datenbank herstellt und die Serverversion ausgibt. Das ist der beste Weg, um sicherzustellen, dass alles funktioniert.

\n\n
using Npgsql;\n\n// Verbindungszeichenfolge: Geben Sie Ihre Daten ein\nstring connectionString = "Host=localhost;Port=5432;Database=postgres;Username=postgres;Password=ihr_passwort";\n\nusing var connection = new NpgsqlConnection(connectionString);\nconnection.Open();\n\n// Abfrage ausführen\nusing var command = new NpgsqlCommand("SELECT version();", connection);\nstring version = (string)await command.ExecuteScalarAsync();\n\nConsole.WriteLine($"Verbindung erfolgreich! PostgreSQL-Version: {version}");
\n\n

Führen Sie den Code aus. Wenn Sie in der Konsole etwas wie "PostgreSQL 16.1 on x86_64-pc-linux-gnu..." sehen, haben Sie es geschafft! Wenn nicht, überprüfen Sie das Passwort, den Hostnamen und stellen Sie sicher, dass der PostgreSQL-Dienst läuft.

\n\n

Schritt 3: CRUD-Operationen in C# mit PostgreSQL

\n

Nachdem die Verbindung funktioniert, erstellen wir eine Tabelle und führen den vollständigen Zyklus durch: Create, Read, Update, Delete.

\n\n

Tabelle erstellen

\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("Tabelle users wurde erstellt.");
\n\n

Daten einfügen (INSERT)

\n
// Wir verwenden parametrisierte Abfragen – das schützt vor SQL-Injection!\nstring insertSql = "INSERT INTO users (name, email) VALUES (@name, @email) RETURNING id;";\n\nusing var cmdInsert = new NpgsqlCommand(insertSql, connection);\ncmdInsert.Parameters.AddWithValue("@name", "Max Mustermann");                

Blogs

Buchempfehlungen