Zum Fußzeileninhalt springen
.NET HILFE

C# PostgreSQL (Funktionsweise für Entwickler)

Willkommen zu diesem Tutorial, das für Anfänger konzipiert ist, die daran interessiert sind, C#-Anwendungen mit PostgreSQL zu integrieren. PostgreSQL gehört zu den weltweit am häufigsten verwendeten relationalen Datenbanken und ist bekannt für seine Zuverlässigkeit und Kompatibilität mit einer Vielzahl von Programmierumgebungen, einschließlich C#. Dieser Leitfaden führt Sie durch die Grundlagen der Verbindung einer C#-Anwendung mit einer PostgreSQL-Datenbank, das Ausführen von SQL-Abfrageanweisungen und die Datenhandhabung. Wir verwenden Werkzeuge wie Visual Studio, NuGet Package Manager und den Npgsql-Datenanbieter, um ein einfaches Projekt zu erstellen, das mit einem PostgreSQL-Server kommuniziert. Wir werden auch mehr über die IronPDF-Bibliothek mit der Integration von PostgreSQL lernen.

Einrichten Ihrer Umgebung

Bevor Sie mit dem Codieren beginnen, stellen Sie sicher, dass Visual Studio auf Ihrem Computer installiert ist. Visual Studio ist eine beliebte integrierte Entwicklungsumgebung (IDE), die neben anderen Programmiersprachen auch C# unterstützt. Für das Datenbankmanagement installieren Sie PostgreSQL auf Ihrem lokalen Rechner oder richten Sie eine PostgreSQL-Datenbank in einer Cloud-Umgebung wie Azure-Datenbank ein.

Nach der Einrichtung von Visual Studio und Ihrem PostgreSQL-Server erstellen Sie ein neues C#-Projekt. Sie können dies tun, indem Sie Visual Studio öffnen, zum Menü Datei gehen, Neu auswählen und dann Projekt. Wählen Sie eine Konsolenanwendung (.NET Core) als Projekttyp, um die Dinge einfach zu halten.

Integration von PostgreSQL mit C#;

Um Ihre C#-Anwendung mit einer PostgreSQL-Datenbank zu verbinden, benötigen Sie den Npgsql-Datenanbieter. Npgsql fungiert als Brücke zwischen C#-Anwendungen und PostgreSQL-Datenbanken, sodass Ihr Code SQL-Befehle ausführen und Daten verwalten kann.

Installation von Npgsql

Öffnen Sie Ihr neu erstelltes Projekt in Visual Studio. Klicken Sie mit der rechten Maustaste in der Projektmappen-Explorer auf Ihr Projekt, wählen Sie "NuGet-Pakete verwalten" und suchen Sie nach dem Npgsql-Paket. Installieren Sie es, indem Sie auf den Installationsknopf neben dem Paketnamen klicken. Diese Aktion fügt den Npgsql-Datenanbieter zu Ihrem Projekt hinzu, sodass Ihre Anwendung mit PostgreSQL kommunizieren kann. Sie können es auch mithilfe der Paketmanager-Konsole installieren.

C# PostgreSQL (Funktionsweise für Entwickler): Abbildung 1 - Npgsql

Konfiguration der Datenbankverbindung

Der erste Schritt zur Interaktion mit einer PostgreSQL-Datenbank aus C# besteht darin, eine Verbindung herzustellen. Dies erfordert eine Verbindungszeichenfolge, die Details wie den Servernamen, Port, Benutzernamen und das Passwort enthält. Hier ist eine grundlegende Vorlage für eine PostgreSQL-Verbindungszeichenfolge:

string connectionString = "Host=localhost; Port=5432; Username=postgres; Password=yourpassword; Database=mydatabase";
string connectionString = "Host=localhost; Port=5432; Username=postgres; Password=yourpassword; Database=mydatabase";
$vbLabelText   $csharpLabel

Ersetzen Sie localhost, yourpassword und mydatabase durch die Details Ihres PostgreSQL-Servers.

Definition des Mitarbeitermodells

Wir definieren ein Employee-Entitätsmodell, das unsere Daten in der PostgreSQL-Datenbank repräsentiert. Dieses Modell umfasst Eigenschaften, die den Spalten in der Datenbanktabelle entsprechen.

public class Employee
{
    public int Id { get; set; } // Automatically becomes the primary key
    public string LastName { get; set; }
}
public class Employee
{
    public int Id { get; set; } // Automatically becomes the primary key
    public string LastName { get; set; }
}
$vbLabelText   $csharpLabel

Dieses Code-Beispiel definiert eine einfache Employee-Klasse mit zwei Eigenschaften: Id und LastName. Entity Framework Core verwendet Konventionen, um zu schlussfolgern, dass die Id Serial Primary Key-Eigenschaft als Primärschlüssel behandelt werden sollte.

Den DbContext der Anwendung konfigurieren

Die AppDbContext-Klasse erweitert DbContext von Entity Framework Core und fungiert als Brücke zwischen Ihrer C#-Anwendung und der PostgreSQL-Datenbank. Sie beinhaltet Konfigurationsdetails wie die Verbindungszeichenfolge und die DbSet-Eigenschaften, die Tabellen in der Datenbank repräsentieren.

public class AppDbContext : DbContext
{
    public DbSet<Employee> Employees { get; set; } // Represents the Employees table

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        string connectionString = "Host=localhost; Port=5432; Username=postgres; Password=your_password; Database=your_database";
        optionsBuilder.UseNpgsql(connectionString);
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Employee>().ToTable("Employees");
    }
}
public class AppDbContext : DbContext
{
    public DbSet<Employee> Employees { get; set; } // Represents the Employees table

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        string connectionString = "Host=localhost; Port=5432; Username=postgres; Password=your_password; Database=your_database";
        optionsBuilder.UseNpgsql(connectionString);
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Employee>().ToTable("Employees");
    }
}
$vbLabelText   $csharpLabel
  • DbSet-Eigenschaft:** public DbSet Mitarbeiter { abrufen; set; } deklariert eine Menge von Employee**-Entitäten, die der Mitarbeitertabelle in der PostgreSQL-Datenbank zugeordnet sind.

  • OnConfiguring-Methode: Diese Methode konfiguriert den DbContext mit der erforderlichen Datenbankverbindungszeichenfolge. Ersetzen Sie your_password und your_database durch die tatsächlichen Details Ihres PostgreSQL-Servers.

  • OnModelCreating-Methode: Hier können Sie die Fluent API verwenden, um das Verhalten von Entitäten weiter zu konfigurieren. In diesem Beispiel geben wir den Tabellennamen explizit an, obwohl dies optional ist, wenn der Tabellenname mit dem DbSet-Eigenschaftsnamen übereinstimmt.

Hauptprogrammlogik

Im Program-Klassenmethode Main stellen wir sicher, dass die Datenbank erstellt wird, fügen sie mit Initialdaten hinzu, wenn sie leer ist, und führen dann eine Abfrage durch, um Mitarbeiterdaten abzurufen und anzuzeigen.

class Program
{
    static void Main(string[] args)
    {
        using (var context = new AppDbContext())
        {
            context.Database.EnsureCreated();  // Ensure the database and schema are created
            if (!context.Employees.Any())  // Check if the Employees table is empty
            {
                context.Employees.Add(new Employee { LastName = "Software" });
                context.SaveChanges();  // Save changes to the database
            }
            var employees = context.Employees.Where(e => e.LastName == "Software").ToList();
            foreach (var employee in employees)
            {
                Console.WriteLine($"Employee ID: {employee.Id}, Last Name: {employee.LastName}");
            }
        }
    }
}
class Program
{
    static void Main(string[] args)
    {
        using (var context = new AppDbContext())
        {
            context.Database.EnsureCreated();  // Ensure the database and schema are created
            if (!context.Employees.Any())  // Check if the Employees table is empty
            {
                context.Employees.Add(new Employee { LastName = "Software" });
                context.SaveChanges();  // Save changes to the database
            }
            var employees = context.Employees.Where(e => e.LastName == "Software").ToList();
            foreach (var employee in employees)
            {
                Console.WriteLine($"Employee ID: {employee.Id}, Last Name: {employee.LastName}");
            }
        }
    }
}
$vbLabelText   $csharpLabel

Der obige Code überprüft, ob die Datenbank existiert, und erstellt sie zusammen mit dem Schema, falls nicht. Es ist ein einfacher Weg, eine neue Datenbank während der Entwicklung zu bootstrappen. Diese SQL-Anweisung prüft, ob die Employees-Tabelle leer ist, und das Programm fügt einen neuen Employee mit dem Nachnamen "Software" hinzu und speichert die Änderungen in der Datenbank. Das Programm fragt nach Einträgen in der Employees-Tabelle mit dem Nachnamen "Software" und druckt deren Details auf die Konsole.

Ausgabe

Hier ist die Konsolenausgabe, wenn Sie das Programm ausführen:

C# PostgreSQL (Funktionsweise für Entwickler): Abbildung 2 - Ausgabe

Und es ist die Tabellendaten in PgAdmin:

C# PostgreSQL (Funktionsweise für Entwickler): Abbildung 3 - Tabellenausgabe

Einführung in IronPDF

Erkunden Sie die Fähigkeiten der IronPDF-Bibliothek, um zu verstehen, wie diese umfassende Bibliothek für C# Entwicklern ermöglicht, PDF-Dokumente innerhalb von .NET-Anwendungen zu erstellen, zu editieren und zu manipulieren. Dieses leistungsstarke Tool vereinfacht die Erstellung von PDFs aus HTML, URLs und Bildern. Es bietet auch wesentliche PDF-Operationen wie das Bearbeiten von Text und Bildern sowie das Hinzufügen von Sicherheitsfunktionen wie Verschlüsselung und digitalen Signaturen. IronPDF zeichnet sich durch seine Benutzerfreundlichkeit aus, die Entwicklern ermöglicht, komplexe PDF-Funktionen mit minimalem Code zu implementieren.

IronPDF bietet die Möglichkeit, HTML mühelos in PDF zu konvertieren, während Layouts und Stile unverändert bleiben. Diese Funktion eignet sich hervorragend zum Erstellen von PDFs aus webbasierten Inhalten wie Berichten, Rechnungen und Dokumentationen. Es konvertiert HTML-Dateien, URLs und HTML-Zeichenfolgen in PDF-Dateien.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
$vbLabelText   $csharpLabel

Die Integration von IronPDF mit einer PostgreSQL-Datenbank kann in Szenarien äußerst nützlich sein, in denen Sie PDF-Berichte oder Dokumente basierend auf dynamischen Daten generieren müssen, die in Ihrer Datenbank gespeichert sind. Dies könnte von der Erstellung von Rechnungen, Berichten, Kundenabrechnungen und mehr direkt aus den in einer PostgreSQL-Datenbank gespeicherten Daten reichen.

Installation von IronPDF

Bevor Sie IronPDF verwenden können, müssen Sie es zu Ihrem Projekt hinzufügen. Dies ist einfach über den NuGet-Paket-Manager zu erledigen:

Install-Package IronPdf

Erzeugung einer PDF-Datei aus PostgreSQL-Daten

In diesem Beispiel generieren wir einen einfachen PDF-Bericht, der Mitarbeiter aus unserer PostgreSQL-Datenbank auflistet. Wir gehen davon aus, dass Sie das AppDbContext und Employee-Modell wie in den vorherigen Abschnitten beschrieben eingerichtet haben.

Stellen Sie zuerst sicher, dass die IronPDF-Bibliothek in Ihrem Projekt installiert ist. Dann können Sie den folgenden Code verwenden, um Daten aus der PostgreSQL-Datenbank abzurufen und einen PDF-Bericht zu generieren:

class Program
{
    static void Main(string[] args)
    {
        IronPdf.License.LicenseKey = "Key";
        // Initialize the database context
        using (var context = new AppDbContext())
        {
            // Fetch employees from the database
            var employees = context.Employees.ToList();
            // Generate HTML content for the PDF
            var htmlContent = "<h1>Employee Report</h1>";
            htmlContent += "<table><tr><th>ID</th><th>Last Name</th></tr>";
            foreach (var employee in employees)
            {
                htmlContent += $"<tr><td>{employee.Id}</td><td>{employee.LastName}</td></tr>";
            }
            htmlContent += "</table>";
            // Instantiate the IronPDF HtmlToPdf converter
            var renderer = new ChromePdfRenderer();
            // Generate the PDF document from the HTML content
            var pdf = renderer.RenderHtmlAsPdf(htmlContent);
            // Save the generated PDF to a file
            var outputPath = "f:\\EmployeeReport.pdf";
            pdf.SaveAs(outputPath);
            Console.WriteLine($"PDF report generated: {outputPath}");
        }
    }
}
class Program
{
    static void Main(string[] args)
    {
        IronPdf.License.LicenseKey = "Key";
        // Initialize the database context
        using (var context = new AppDbContext())
        {
            // Fetch employees from the database
            var employees = context.Employees.ToList();
            // Generate HTML content for the PDF
            var htmlContent = "<h1>Employee Report</h1>";
            htmlContent += "<table><tr><th>ID</th><th>Last Name</th></tr>";
            foreach (var employee in employees)
            {
                htmlContent += $"<tr><td>{employee.Id}</td><td>{employee.LastName}</td></tr>";
            }
            htmlContent += "</table>";
            // Instantiate the IronPDF HtmlToPdf converter
            var renderer = new ChromePdfRenderer();
            // Generate the PDF document from the HTML content
            var pdf = renderer.RenderHtmlAsPdf(htmlContent);
            // Save the generated PDF to a file
            var outputPath = "f:\\EmployeeReport.pdf";
            pdf.SaveAs(outputPath);
            Console.WriteLine($"PDF report generated: {outputPath}");
        }
    }
}
$vbLabelText   $csharpLabel

Ausgabe

Wenn Sie den Code ausführen, zeigt diese Konsolenausgabe:

C# PostgreSQL (Funktionsweise für Entwickler): Abbildung 4 - Konsolenausgabe

Dieses PDF wird generiert:

C# PostgreSQL (Funktionsweise für Entwickler): Abbildung 5 - PDF-Ausgabe

Abschluss

Sie haben gerade einen bedeutenden ersten Schritt in die Welt des Datenbankmanagements mit C# und PostgreSQL gemacht. Indem Sie den Anweisungen in diesem Tutorial folgen, haben Sie gelernt, wie man ein Projekt in Visual Studio einrichtet, die erforderlichen Pakete installiert und grundlegende Datenbankoperationen ausführt. Wenn Sie mit diesen Konzepten vertrauter werden, werden Sie die Macht und Flexibilität der Kombination von C# mit einem der wichtigsten relationalen Datenbanksysteme entdecken. Experimentieren Sie weiter mit verschiedenen Abfragen und Entitätskonfigurationen, um Ihr Verständnis dafür zu vertiefen, wie C# mit PostgreSQL interagiert.

IronPDF bietet eine kostenlose Testversion der IronPDF-Features, die es Entwicklern ermöglicht, ihre Funktionen und Fähigkeiten ohne anfängliche Investition zu erkunden. Diese Testversion ist besonders nützlich zur Bewertung, wie gut IronPDF die Anforderungen Ihres Projekts für die Erstellung, Bearbeitung und Konvertierung von PDF-Dokumenten in .NET-Anwendungen erfüllt. Nach der Testphase oder für den Produktionseinsatz ist der Erwerb einer Lizenz erforderlich. Die Lizenzierung für IronPDF beginnt bei $799 und bietet eine Reihe von Funktionen und Support-Optionen, die für unterschiedliche Entwicklungsanforderungen geeignet sind.

Häufig gestellte Fragen

Wie verbinde ich eine C#-Anwendung mit einer PostgreSQL-Datenbank?

Um eine C#-Anwendung mit einer PostgreSQL-Datenbank zu verbinden, müssen Sie den Npgsql-Datenanbieter verwenden, der über den NuGet-Paketmanager in Visual Studio installiert werden kann. Sie benötigen auch eine ordnungsgemäß konfigurierte Verbindungszeichenfolge, die den Servernamen, Port, Benutzernamen, das Passwort und den Datenbanknamen enthält.

Welche Schritte sind erforderlich, um ein C#-Projekt mit PostgreSQL einzurichten?

Installieren Sie zunächst Visual Studio und PostgreSQL auf Ihrem Computer. Erstellen Sie dann ein neues C#-Projekt und verwenden Sie den NuGet-Paketmanager, um den Npgsql-Datenanbieter zu installieren. Konfigurieren Sie Ihre Verbindungszeichenfolge und stellen Sie sicher, dass Ihr PostgreSQL-Server läuft.

Wie kann ich SQL-Befehle in einer C#-Anwendung ausführen?

Sie können SQL-Befehle in einer C#-Anwendung mit dem Npgsql-Datenanbieter ausführen. Nachdem Sie eine Verbindung zur PostgreSQL-Datenbank hergestellt haben, können Sie NpgsqlCommand verwenden, um SQL-Abfragen wie SELECT, INSERT, UPDATE und DELETE auszuführen.

Wie kann ich PDF-Berichte aus PostgreSQL-Daten in C# generieren?

IronPDF ermöglicht es Ihnen, PDF-Berichte aus PostgreSQL-Daten in C# zu generieren. Sie können Daten aus der Datenbank abrufen und die Funktionen von IronPDF nutzen, um ein PDF-Dokument zu erstellen, einschließlich der Umwandlung von HTML-Inhalten in PDF oder der Bearbeitung bestehender PDFs.

Was ist der Zweck der Verwendung des Npgsql-Datenanbieters in C#?

Der Npgsql-Datenanbieter wird in C# verwendet, um die Kommunikation mit PostgreSQL-Datenbanken zu erleichtern. Er ermöglicht es Ihrer Anwendung, SQL-Abfragen auszuführen, Daten zu verwalten und nahtlos mit der Datenbank zu interagieren.

Wie kann ich in C# eine Datenbank erstellen und initialisieren?

In C# können Sie eine Datenbank mit der Methode context.Database.EnsureCreated() erstellen, die überprüft, ob die Datenbank existiert und sie erstellt, wenn nicht. Sie können Anfangsdaten hinzufügen, indem Sie Daten zum Kontext hinzufügen und context.SaveChanges() verwenden, um sie zu speichern.

Welche Vorteile bietet IronPDF in einer .NET-Anwendung?

IronPDF ist in .NET-Anwendungen vorteilhaft, da es robuste Funktionen für das Erstellen, Bearbeiten und Verwalten von PDF-Dokumenten bietet. Es unterstützt die Umwandlung von HTML in PDF, das Bearbeiten von Text und Bildern sowie das Hinzufügen von Sicherheitsmerkmalen wie Verschlüsselung.

Wie kann ich ein Datenmodell in C# für eine PostgreSQL-Tabelle definieren?

Sie können ein Datenmodell in C# definieren, indem Sie eine Klasse erstellen, die der Struktur Ihrer PostgreSQL-Tabelle entspricht. Jede Eigenschaft in der Klasse sollte einer Spalte in der Tabelle entsprechen, damit das Entity Framework die Daten korrekt zuordnen kann.

Wie behebe ich Verbindungsprobleme zwischen C# und PostgreSQL?

Um Verbindungsprobleme zu beheben, stellen Sie sicher, dass Ihre Verbindungszeichenfolge korrekt konfiguriert ist, überprüfen Sie, ob Ihr PostgreSQL-Server läuft, und prüfen Sie auf Firewall- oder Netzwerkprobleme, die die Verbindung blockieren könnten.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der führend in der C# PDF-Technologie ist. Als ursprünglicher Entwickler der Iron Software-Kerncodebasis hat er die Produktarchitektur des Unternehmens seit seiner Gründung gestaltet und zusammen mit CEO Cameron Rimington in ein Unternehmen ...

Weiterlesen