Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Bienvenue dans ce tutoriel conçu pour les débutants intéressés par l'intégration d'applications C# avecPostgreSQL. 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.
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.
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.
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.
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"
Remplacez localhost, votremotdepasse, et mydatabase par les détails de votre serveur PostgreSQL.
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
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.
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
Propriété DbSet : public DbSet
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**.
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
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.
Voici la sortie de la console lorsque vous exécutez le programme :
Il s'agit des données du tableau dans PgAdmin :
Découvrez les capacités de la bibliothèque IronPDF pour comprendre comment cette bibliothèque complète pour C# permet aux développeurs de créer, d'éditer et de manipuler des documents PDF au sein d'applications .NET. Cet outil puissant simplifiegé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 convertirHTML vers PDF sans effort, 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
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.
Avant de pouvoir utiliser IronPDF, vous devez l'ajouter à votre projet. Cela se fait facilement via le gestionnaire de paquets NuGet :
Install-Package IronPdf
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
Lorsque vous exécutez le code, la console affiche la sortie suivante :
Ce PDF est généré :
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 deessai gratuit des fonctionnalités d'IronPDF 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.
9 produits de l'API .NET pour vos documents de bureau