Arbeiten mit Datenbanken in C#: PostgreSQL und MongoDB auf .NET

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

Arbeit mit Datenbanken in C#: PostgreSQL und MongoDB – vollständiger Leitfaden für .NET-Entwickler



Moderne Entwicklung mit C# (.NET) kommt selten ohne Interaktion mit Datenbanken aus. Unabhängig davon, ob Sie eine Webanwendung, einen Mikroservice oder ein Desktop-Tool erstellen, ist die Fähigkeit, Verbindungen herzustellen und Daten zu verwalten, eine Schlüsselqualifikation. In diesem Artikel behandeln wir die Arbeit mit zwei beliebten Datenbankmanagementsystemen: der relationalen PostgreSQL und der dokumentenorientierten MongoDB. Sie erfahren, wie Sie Verbindungen einrichten, CRUD-Operationen durchführen und typische Fehler vermeiden.



1. Verbindung zu PostgreSQL aus C# (.NET) mit Npgsql



PostgreSQL ist ein leistungsstarkes relationales Open-Source-DBMS. Für die Arbeit damit in .NET wird der Provider Npgsql verwendet. Installieren Sie ihn über NuGet:



dotnet add package Npgsql


Nach der Installation wird eine Verbindung über die Verbindungszeichenfolge hergestellt. Beispiel:



using Npgsql;

string connectionString = "Host=localhost;Port=5432;Database=mydb;Username=user;Password=pass";

using var conn = new NpgsqlConnection(connectionString);conn.Open();

Console.WriteLine("Verbindung zu PostgreSQL hergestellt!");


Ausführen von SQL-Abfragen: CREATE, INSERT, SELECT



Verwenden Sie NpgsqlCommand zum Ausführen von Befehlen. Betrachten wir die Erstellung einer Tabelle und das Einfügen von Daten:



using var cmd = new NpgsqlCommand();cmd.Connection = conn;

// Tabelle erstellencmd.CommandText = @" CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100), email VARCHAR(200) UNIQUE )";cmd.ExecuteNonQuery();

// Daten mit Parametern einfügencmd.CommandText = "INSERT INTO users (name, email) VALUES (@name, @email)";cmd.Parameters.AddWithValue("name", "Ivan Petrov");cmd.Parameters.AddWithValue("email", "ivan@example.com");cmd.ExecuteNonQuery();

// Daten lesencmd.CommandText = "SELECT id, name, email FROM users";using var reader = cmd.ExecuteReader();while (reader.Read()){ Console.WriteLine($"{reader["id"]}: {reader["name"]} - {reader["email"]}");}


Wichtig: Verwenden Sie immer parametrisierte Abfragen zum Schutz vor SQL-Injection.



2. Arbeiten mit PostgreSQL über Entity Framework Core



Für höherwertige Arbeit wird Entity Framework Core (EF Core) mit dem Npgsql-Provider empfohlen. Installieren Sie die Pakete:



dotnet add package Microsoft.EntityFrameworkCoredotnet add package Npgsql.EntityFrameworkCore.PostgreSQL


Erstellen Sie einen Kontext und ein Modell:



public class User{    public int Id { get; set; }    public string Name { get; set; }    public string Email { get; set; }}

public class AppDbContext : DbContext{ public DbSet<User> Users { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseNpgsql("Host=localhost;Database=mydb;Username=user;Password=pass");}

// Verwendungusing var db = new AppDbContext();db.Database.EnsureCreated();

var user = new User { Name = "Anna Smirnova", Email = "anna@example.com" };db.Users.Add(user);db.SaveChanges();

var users = db.Users.ToList();


EF Core generiert automatisch SQL, verwaltet Migrationen und vereinfacht die Codewartung.



3. Verbindung zu MongoDB aus C# (.NET) mit MongoDB.Driver



MongoDB ist eine NoSQL-Datenbank, die Daten im BSON-Dokumentformat speichert. Verwenden Sie für C# den offiziellen Treiber MongoDB.Driver:



dotnet add package MongoDB.Driver


Verbindung zum lokalen Server:



using MongoDB.Driver;using MongoDB.Bson;

var client = new MongoClient("mongodb://localhost:27017");var database = client.GetDatabase("mydb");var collection = database.GetCollection<

Blogs

Buchempfehlungen