
C# PostgreSQL (Geliştiriciler için Nasıl Çalışır)
C# uygulamalarını PostgreSQL ile entegre etmekle ilgilenen acemiler için tasarlanmış bu öğreticiye hoş geldiniz. PostgreSQL, dünya genelinde en çok kullanılan ilişkisel veritabanlarından biridir ve güvenilirliği ile C# dahil geniş bir programlama ortamı ile uyumluluğu ile bilinir. Bu kılavuz, bir C# uygulamasını bir PostgreSQL veritabanına bağlama, SQL deyim sorgularını çalıştırma ve veri yönetiminin temel noktalarında size yol gösterecek. Visual Studio, NuGet Paket Yöneticisi ve Npgsql veri sağlayıcısı gibi araçları kullanarak, bir PostgreSQL sunucusuyla iletişim kuran basit bir proje oluşturacağız. PostgreSQL entegrasyonu ile IronPDF kütüphanesini de öğreneceğiz.
Çevrenizi Kurma
Kodlamaya dalmadan önce, bilgisayarınıza Visual Studio'nun kurulu olduğundan emin olun. Visual Studio, C# dahil olmak üzere diğer programlama dillerini destekleyen popüler bir entegre geliştirme ortamıdır (IDE). Veritabanı yönetimi için, yerel makinenize PostgreSQL yükleyin veya Azure Veri Tabanı gibi bir bulut ortamında bir PostgreSQL veritabanı kurun.
Visual Studio ve PostgreSQL sunucunu kurduktan sonra yeni bir C# projesi oluştur. Bunu Visual Studio'yu açarak, Dosya menüsüne giderek, Yeni ve ardından Proje'yi seçerek yapabilirsiniz. İşleri basit tutmak için projeniz için bir Konsol Uygulaması (.NET Core) seçin.
Integrating PostgreSQL with C#
C# uygulamanızı bir PostgreSQL veritabanına bağlamak için Npgsql veri sağlayıcısına ihtiyacınız var. Npgsql, kodunuzun SQL komutları yürütmesine ve verileri yönetmesine olanak tanıyan C# uygulamaları ve PostgreSQL veritabanları arasında bir köprü olarak hareket eder.
Npgsql Kurulumu
Yeni oluşturduğunuz projeyi Visual Studio'da açın. Solution Explorer'da projenize sağ tıklayın, 'NuGet Paketlerini Yönet'i seçin ve Npgsql paketini arayın. Paket isminin yanındaki yükle düğmesine tıklayarak yükleyin. Bu işlem Npgsql veri sağlayıcısını projenize ekler, böylece uygulamanız PostgreSQL ile iletişim kurabilir. Bunu paket yöneticisi konsolu kullanarak da yükleyebilirsiniz.

Veritabanı Bağlantısını Yapılandırma
C#'dan bir PostgreSQL veritabanıyla etkileşime girmenin ilk adımı bir bağlantı kurmaktır. Bu, sunucu adı, port, kullanıcı adı ve şifre gibi bilgileri içeren bir bağlantı dizesi gerektirir. İşte temel bir PostgreSQL bağlantı dizesi şablonu:
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"localhost, yourpassword ve mydatabase'i PostgreSQL sunucunuzun bilgileriyle değiştirin.
Çalışan Modelini Tanımlama
Employee varlık modelini PostgreSQL veritabanındaki verilerimizi temsil edecek şekilde tanımlarız. Bu model, veritabanı tablosundaki sütunlara karşılık gelen özellikleri içerir.
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 ClassBu kod parçacığı, Id ve LastName adlı iki özelliğe sahip basit bir Employee sınıfını tanımlar. Entity Framework Core, Id sıralı birincil anahtar özelliğinin birincil anahtar olarak ele alınması gerektiğini çıkarım yapmak için kuralları kullanır.
Uygulamanın DbContext'ini Yapılandırma
AppDbContext sınıfı Entity Framework Core'dan DbContexti genişletir, C# uygulamanız ile PostgreSQL veritabanı arasında köprü görevi görür. Bu, bağlantı dizesi gibi yapılandırma ayrıntılarını ve veritabanındaki tabloları temsil eden DbSet özelliklerini içerir.
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(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(modelBuilder As ModelBuilder)
modelBuilder.Entity(Of Employee)().ToTable("Employees")
End Sub
End Class-
DbSet Özelliği: **public
DbSet<Employee>Employees{ get; set; }**** PostgreSQL veritabanında personel tablosuyla eşlenmiş **Employee varlıklarından oluşan bir küme ilan eder. -
OnConfiguring Metodu: Bu metod, gerekli veritabanı bağlantı dizesi ile DbContexti yapılandırır. your_password ve your_database'i gerçek PostgreSQL sunucu bilgilerinizle değiştirin.
-
OnModelCreating Metodu: Burada, varlık davranışlarını daha fazla yapılandırmak için Fluent API'yi kullanabilirsiniz. Bu örnekte, tablo adını açıkça belirtiriz, ancak tablonun adı DbSet özelliği adıyla eşleşirse isteğe bağlıdır.
Ana Program Mantığı
Program sınıfının Main metodunda, veritabanının oluşturulduğundan emin olur, boşsa başlangıç verileriyle doldurur ve ardından çalışan verilerini almak ve görüntülemek için bir sorgu çalıştırırız.
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}");
}
}
}
}Friend Class Program
Shared Sub Main(ByVal args() As String)
Using context = New AppDbContext()
context.Database.EnsureCreated() ' Ensure the database and schema are created
If Not context.Employees.Any() Then ' Check if the Employees table is empty
context.Employees.Add(New Employee With {.LastName = "Software"})
context.SaveChanges() ' Save changes to the database
End If
Dim employees = context.Employees.Where(Function(e) e.LastName = "Software").ToList()
For Each employee In employees
Console.WriteLine($"Employee ID: {employee.Id}, Last Name: {employee.LastName}")
Next employee
End Using
End Sub
End ClassYukarıdaki kod, veritabanının var olup olmadığını kontrol eder ve yoksa şemayla birlikte oluşturur. Geliştirme sırasında yeni bir veritabanı başlatmanın basit bir yoludur. Bu SQL ifadesi, Çalışanlar tablosunun boş olup olmadığını kontrol eder, program soyadı 'Yazılım' olan yeni bir Çalışan ekler ve değişiklikleri veritabanına kaydeder. Program, 'Software' soyadına sahip olan çalışanların girişlerini Employees tablosuna sorgular ve ayrıntılarını konsola yazdırır.
Çıktı
Programı çalıştırdığınızda konsoldaki çıktı:

Ve bu, PgAdmin'deki tablo verisidir:

IronPDF'ye Giriş
IronPDF Kütüphanesinin Kapasitelerini Keşfedin ve bu kapsamlı C# kütüphanesinin geliştiricilerin .NET uygulamaları içinde PDF belgeleri oluşturmasını, düzenlemesini ve manipüle etmesini nasıl sağladığını anlayın. Bu güçlü araç, HTML'den, URL'lerden ve resimlerden PDF oluşturmayı basitleştirir. Ayrıca metin ve resim düzenleme ve şifreleme ve dijital imzalar gibi güvenlik özellikleri ekleme gibi temel PDF işlemlerini sağlar. IronPDF, kullanımı kolay olmasıyla öne çıkar, geliştiricilerin, en az kod kullanarak karmaşık PDF işlevselliklerini uygulamalarını sağlar.
IronPDF, HTML'nin kolayca PDF'e dönüştürülmesini sağlayarak yerleşim ve stilleri değiştirmeden tutar. Bu özellik, raporlar, faturalar ve belgeler gibi web tabanlı içeriklerden PDF oluşturmak için mükemmeldir. HTML dosyalarını, URL'leri ve HTML dizgilerini PDF dosyalarına dönüştürür.
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
Module Program
Sub Main(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 ModuleIronPDF'i bir PostgreSQL veritabanı ile entegre etmek, veritabanınızda depolanan dinamik verilere dayalı olarak PDF raporları veya belgeleri oluşturmanız gereken senaryolarda inanılmaz derecede faydalı olabilir. Bu, bir PostgreSQL veritabanında kalıcı hale getirilen verilerden doğrudan fatura, rapor, müşteri bildirimi ve daha fazlasını oluşturmaktan kaynaklanabilir.
Installing IronPDF
IronPDF'i kullanmadan önce, onu projenize eklemeniz gerekir. Bunu NuGet Paket Yöneticisi aracılığıyla kolayca yapabilirsiniz:
PostgreSQL Verilerinden PDF Oluşturma
Bu örnekte, PostgreSQL veritabanımızdan çalışanları listeleyen basit bir PDF raporu oluşturalım. Önceki bölümlerde açıklandığı gibi AppDbContext ve Employee modelinin kurulu olduğunu varsayacağız.
Öncelikle projenizde IronPDF kütüphanesinin kurulu olduğundan emin olun. Sonra, PostgreSQL veritabanından veri çekmek ve bir PDF raporu oluşturmak için aşağıdaki kodu kullanabilirsiniz:
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Çıktı
Kodu çalıştırdığınızda, bu konsol çıktısı gösterilecektir:

Bu PDF oluşturuldu:

Sonuç
C# ve PostgreSQL ile veri tabanı yönetimi dünyasına önemli bir ilk adım attınız. Bu öğreticideki talimatları takip ederek, Visual Studio'da bir proje kurmayı, gerekli paketleri yüklemeyi ve temel veri tabanı işlemlerini gerçekleştirmeyi öğrendiniz. Bu kavramlarla daha aşina oldukça, C# ile en önemli ilişkisel veri tabanı sistemlerinden birini birleştirmenin gücünü ve esnekliğini keşfedeceksiniz. C#'ın PostgreSQL ile nasıl etkileşimde bulunduğunu daha iyi anlamak için farklı sorgular ve varlık yapılandırmaları ile denemeler yapmaya devam edin.
IronPDF, geliştiricilerin özelliklerini ve yeteneklerini başlangıçta herhangi bir yatırım yapmadan keşfetmelerine olanak tanıyan IronPDF özelliklerinin ücretsiz bir denemesi sunar. Bu deneme, özellikle .NET uygulamalarında PDF belgelerini oluşturma, düzenleme ve dönüştürmeye yönelik projelerinizin gerekliliklerini IronPDF'in ne kadar iyi karşıladığını değerlendirmek için faydalıdır. Deneme süresinden sonra veya üretim kullanımı için bir lisans edinmek gereklidir. IronPDF için lisanslama $999 başlar, ve farklı geliştirme ihtiyaçlarına uygun çeşitli özellikler ve destek seçenekleri sunar.

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.
İlgili Makaleler


