AIDE .NET

C# PostgreSQL (Comment ça marche pour les développeurs)

Publié avril 3, 2024
Partager:

Bienvenue dans ce tutoriel conçu pour les débutants intéressés par l'intégration d'applications C# avec PostgreSQL. PostgreSQL est l'une des bases de données relationnelles les plus utilisées au monde. Elle est réputée pour sa fiabilité et sa compatibilité avec un large éventail d'environnements de programmation, dont C#. Ce guide vous permettra de découvrir les bases de la connexion d'une application C# à une base de données PostgreSQL, de l'exécution de requêtes SQL et de la manipulation de données. Nous utiliserons des outils tels que Visual Studio, NuGet Package Manager et le fournisseur de données Npgsql pour créer un projet simple qui communique avec un serveur PostgreSQL. Nous découvrirons également la bibliothèque IronPDF avec l'intégration de PostgreSQL.

Mise en place de l'environnement

Avant de vous lancer dans le codage, assurez-vous que Visual Studio est installé sur votre ordinateur. Visual Studio est un environnement de développement intégré très répandu (L'IDE) qui prend en charge C# parmi d'autres langages de programmation. Pour la gestion des bases de données, installez PostgreSQL sur votre machine locale ou configurez une base de données PostgreSQL dans un environnement en nuage comme Azure Database.

Après avoir configuré Visual Studio et votre serveur PostgreSQL, créez un nouveau projet C#. Vous pouvez le faire en ouvrant Visual Studio, en allant dans le menu Fichier, en sélectionnant Nouveau, puis Projet. Choisir une application console (.NET Core) comme type de projet pour simplifier les choses.

Intégration de PostgreSQL avec C# ;

Pour connecter votre application C# à une base de données PostgreSQL, vous avez besoin du fournisseur de données Npgsql. Npgsql agit comme un pont entre les applications C# et les bases de données PostgreSQL, permettant à votre code d'exécuter des commandes SQL et de gérer des données.

Installation de Npgsql

Ouvrez votre projet nouvellement créé dans Visual Studio. Cliquez avec le bouton droit de la souris sur votre projet dans l'explorateur de solutions, sélectionnez "Manage NuGet Packages" et recherchez le paquet Npgsql. Installez-le en cliquant sur le bouton d'installation situé à côté du nom du paquet. Cette action ajoute le fournisseur de données Npgsql à votre projet, ce qui permet à votre application de communiquer avec PostgreSQL. Vous pouvez également l'installer en utilisant la console du gestionnaire de paquets.

C# PostgreSQL (Comment ça marche pour les développeurs) : Figure 1 - Npgsql

Configuration de la connexion à la base de données

La première étape de l'interaction avec une base de données PostgreSQL à partir de C# consiste à établir une connexion. Cela nécessite une chaîne de connexion, qui comprend des détails tels que le nom du serveur, le port, le nom d'utilisateur et le mot de passe. Voici un modèle de base pour une chaîne de connexion PostgreSQL :

string connectionString = "Host=localhost; Port=5432; Username=postgres; Password=yourpassword; Database=mydatabase";
string connectionString = "Host=localhost; Port=5432; Username=postgres; Password=yourpassword; Database=mydatabase";
Dim connectionString As String = "Host=localhost; Port=5432; Username=postgres; Password=yourpassword; Database=mydatabase"
VB   C#

Remplacez localhost, votremotdepasse, et mydatabase par les détails de votre serveur PostgreSQL.

Définir le modèle de l'employé

Nous définissons un modèle d'entité Employé qui représentera nos données dans la base de données PostgreSQL. Ce modèle comprend des propriétés qui correspondent aux colonnes de la table de la base de données.

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; }
}
Public Class Employee
	Public Property Id() As Integer ' -  Automatically becomes the primary key
	Public Property LastName() As String
End Class
VB   C#

Cet extrait de code définit une classe Employé simple avec deux propriétés : Id et LastName. Entity Framework Core utilise des conventions pour déduire que la propriété Id serial primary key doit être traitée comme la clé primaire.

Configuration du contexte Db de l'application

La classe AppDbContext étend DbContext d'Entity Framework Core, agissant comme un pont entre votre application C# et la base de données PostgreSQL. Il comprend des détails de configuration tels que la chaîne de connexion et les propriétés DbSet qui représentent les tables de la base de données.

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");
    }
}
Public Class AppDbContext
	Inherits DbContext

	Public Property Employees() As DbSet(Of Employee) ' -  Represents the Employees table
	Protected Overrides Sub OnConfiguring(ByVal optionsBuilder As DbContextOptionsBuilder)
		Dim connectionString As String = "Host=localhost; Port=5432; Username=postgres; Password=your_password; Database=your_database"
		optionsBuilder.UseNpgsql(connectionString)
	End Sub
	Protected Overrides Sub OnModelCreating(ByVal modelBuilder As ModelBuilder)
		modelBuilder.Entity(Of Employee)().ToTable("Employees")
	End Sub
End Class
VB   C#

Propriété DbSet : public DbSetSalariés { obtenir ; set ; }déclare un ensemble d'entités Employé qui sont mappées à la table employé dans la base de données PostgreSQL.

méthode OnConfiguring : Cette méthode configure le DbContext avec la chaîne de connexion nécessaire à la base de données. Remplacez votre_mot_de_passe et votre_base_de_données** par les détails de votre serveur PostgreSQL.

méthode OnModelCreating : Ici, vous pouvez utiliser l'API Fluent pour configurer davantage les comportements des entités. Dans cet exemple, nous spécifions explicitement le nom de la table, bien qu'il soit facultatif si le nom de la table correspond au nom de la propriété DbSet**.

Logique du programme principal

Dans la méthode Main de la classe Programme, nous nous assurons que la base de données est créée, nous l'alimentons avec des données initiales si elle est vide, puis nous effectuons une requête pour récupérer et afficher les données des employés.

class Program
{
    static void Main(string [] args)
    {
        using (var context = new AppDbContext())
        {
            context.Database.EnsureCreated();
            if (!context.Employees.Any())
            {
                context.Employees.Add(new Employee { LastName = "Software" });
                context.SaveChanges();
            }
            var employees = context.Employees.Where(e => e.LastName == "Doe").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();
            if (!context.Employees.Any())
            {
                context.Employees.Add(new Employee { LastName = "Software" });
                context.SaveChanges();
            }
            var employees = context.Employees.Where(e => e.LastName == "Doe").ToList();
            foreach (var employee in employees)
            {
                Console.WriteLine($"Employee ID: {employee.Id}, Last Name: {employee.LastName}");
            }
        }
    }
}
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Using context = New AppDbContext()
			context.Database.EnsureCreated()
			If Not context.Employees.Any() Then
				context.Employees.Add(New Employee With {.LastName = "Software"})
				context.SaveChanges()
			End If
			Dim employees = context.Employees.Where(Function(e) e.LastName = "Doe").ToList()
			For Each employee In employees
				Console.WriteLine($"Employee ID: {employee.Id}, Last Name: {employee.LastName}")
			Next employee
		End Using
	End Sub
End Class
VB   C#

Le code ci-dessus vérifie si la base de données existe et la crée avec le schéma si ce n'est pas le cas. Il s'agit d'un moyen simple d'amorcer une nouvelle base de données pendant le développement. Cette instruction SQL vérifie que si la table Salariés est vide, le programme ajoute un nouveau Salarié avec le nom de famille "Logiciel" et enregistre les modifications dans la base de données. Le programme recherche dans la table Salariés les entrées dont le nom de famille est "Logiciel" et imprime leurs coordonnées sur la console. Nous pouvons ajouter une requête SQL pour supprimer une table dans la base de données Postgres. Nous pouvons également ajouter un fournisseur de données .NET pour notre base de données.

Sortie

Voici la sortie de la console lorsque vous exécutez le programme :

C# PostgreSQL (Comment ça marche pour les développeurs) : Figure 2 - Sortie

Il s'agit des données du tableau dans PgAdmin :

C# PostgreSQL (Comment ça marche pour les développeurs) : Figure 3 - Sortie de la table

Introduction à IronPDF

IronPDF est une bibliothèque complète pour C# qui permet aux développeurs de créer, d'éditer et de manipuler des documents PDF au sein d'applications .NET. Cet outil puissant simplifie générer des PDF à partir de HTMLles données de l'enquête sur les droits d'auteur, les adresses URL et les images sont également prises en compte. Il permet également d'effectuer des opérations essentielles sur les PDF, telles que l'édition de texte et d'images, et d'ajouter des fonctions de sécurité telles que le cryptage et les signatures numériques. IronPDF se distingue par sa facilité d'utilisation, permettant aux développeurs de mettre en œuvre des fonctionnalités PDF complexes avec un minimum de code.

IronPDF offre la capacité de convertir HTML vers PDF, tout en conservant les mises en page et les styles inchangés. Cette fonctionnalité est parfaite pour générer des PDF à partir de contenu web comme des rapports, des factures et de la documentation. Il convertit des fichiers HTML, des URLs et des chaînes HTML en fichiers 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");
    }
}
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");
    }
}
Imports IronPdf
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()
		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
VB   C#

L'intégration d'IronPDF à une base de données PostgreSQL peut s'avérer incroyablement utile dans les scénarios où vous devez générer des rapports ou des documents PDF basés sur des données dynamiques stockées dans votre base de données. Il peut s'agir de générer des factures, des rapports, des relevés de compte client, etc., directement à partir des données conservées dans une base de données PostgreSQL.

Installation d'IronPDF

Avant de pouvoir utiliser IronPDF, vous devez l'ajouter à votre projet. Cela se fait facilement via le gestionnaire de paquets NuGet :

Install-Package IronPdf

Générer un PDF à partir de données PostgreSQL

Dans cet exemple, nous allons générer un rapport PDF simple qui répertorie les employés de notre base de données PostgreSQL. Nous supposerons que vous avez mis en place les modèles AppDbContext et Employee comme décrit dans les sections précédentes.

Tout d'abord, assurez-vous que la bibliothèque IronPDF est installée dans votre projet. Vous pouvez ensuite utiliser le code suivant pour récupérer les données de la base de données PostgreSQL et générer un rapport PDF :

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}");
        }
    }
}
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		IronPdf.License.LicenseKey = "Key"
		' Initialize the database context
		Using context = New AppDbContext()
			' Fetch employees from the database
			Dim employees = context.Employees.ToList()
			' Generate HTML content for the PDF
			Dim htmlContent = "<h1>Employee Report</h1>"
			htmlContent &= "<table><tr><th>ID</th><th>Last Name</th></tr>"
			For Each employee In employees
				htmlContent &= $"<tr><td>{employee.Id}</td><td>{employee.LastName}</td></tr>"
			Next employee
			htmlContent &= "</table>"
			' Instantiate the IronPDF HtmlToPdf converter
			Dim renderer = New ChromePdfRenderer()
			' Generate the PDF document from the HTML content
			Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
			' Save the generated PDF to a file
			Dim outputPath = "f:\EmployeeReport.pdf"
			pdf.SaveAs(outputPath)
			Console.WriteLine($"PDF report generated: {outputPath}")
		End Using
	End Sub
End Class
VB   C#

Sortie

Lorsque vous exécutez le code, la console affiche la sortie suivante :

C# PostgreSQL (Comment ça marche pour les développeurs) : Figure 4 - Sortie de la console

Ce PDF est généré :

C# PostgreSQL (Comment ça marche pour les développeurs) : Figure 5 - Sortie PDF

Conclusion

Vous venez de faire un premier pas significatif dans le monde de la gestion de bases de données avec C# et PostgreSQL. En suivant les instructions de ce tutoriel, vous avez appris à configurer un projet dans Visual Studio, à installer les paquets nécessaires et à exécuter des opérations de base sur la base de données. Au fur et à mesure que vous vous familiariserez avec ces concepts, vous découvrirez la puissance et la souplesse de la combinaison de C# avec l'un des plus importants systèmes de bases de données relationnelles. Continuez à expérimenter avec différentes requêtes et configurations d'entités pour approfondir votre compréhension de la manière dont C# interagit avec PostgreSQL.

IronPDF fournit un service de essai gratuit qui permet aux développeurs d'explorer ses fonctionnalités et ses capacités sans aucun investissement initial. Cette version d'essai est particulièrement utile pour évaluer dans quelle mesure IronPDF répond aux exigences de votre projet en matière de génération, d'édition et de conversion de documents PDF dans des applications .NET. Après la période d'essai ou pour une utilisation en production, l'acquisition d'une licence est nécessaire. La licence d'IronPDF commence à $749, offrant une gamme de fonctionnalités et d'options de support adaptées aux différents besoins de développement.

< PRÉCÉDENT
NativeUI C# (Comment ça marche pour les développeurs)
SUIVANT >
Params C# (Comment ça marche pour les développeurs)