C# PostgreSQL (Geliştiriciler için Nasıl Çalışır)
PostgreSQL ile C# uygulamalarını entegre etmek isteyen yeni başlayanlar için tasarlanan bu öğreticiye hoş geldiniz. PostgreSQL, dünya çapında en çok kullanılan ilişkisel veritabanlarından biridir ve güvenilirliği ve C# da dahil olmak üzere geniş bir programlama ortamı uyumluluğu ile tanınır. Bu kılavuz, bir C# uygulamasını PostgreSQL veritabanına bağlama, SQL ifade sorguları yürütme ve veri işleme temellerini size gösterecek. Bir PostgreSQL sunucusuyla iletişim kuran basit bir proje oluşturmak için Visual Studio, NuGet Paket Yöneticisi ve Npgsql veri sağlayıcısı gibi araçları kullanacağız. PostgreSQL entegrasyonu ile IronPDF kütüphanesi hakkında da bilgi edineceğiz.
Ortamınızı Ayarlama
Kodlamaya başlamadan önce, bilgisayarınıza Visual Studio'nun kurulu olduğundan emin olun. Visual Studio, C#'ın yanı sıra diğer programlama dillerini destekleyen popüler bir tümleşik geliştirme ortamıdır (IDE). Veritabanı yönetimi için, bilgisayarınıza PostgreSQL kurun veya Azure Database gibi bir bulut ortamında bir PostgreSQL veritabanı hazırlayın.
Visual Studio ayarlarını ve PostgreSQL sunucunuzu kurduktan sonra, yeni bir C# projesi oluşturun. Bunu, Visual Studio'yu açarak, Dosya menüsüne giderek, Yeni'yi seçip ardından Proje seçeneğini seçerek yapabilirsiniz. Proje türünüz olarak işleri basit tutmak için Console Uygulaması (.NET Core) seçin.
PostgreSQL'i C# ile Entegre Etme
C# uygulamanızı bir PostgreSQL veritabanına bağlamak için, Npgsql veri sağlayıcısına ihtiyaçınız var. Npgsql, C# uygulamaları ile PostgreSQL veritabanları arasında bir köprü görevi görerek kodunuzun SQL komutlarını yürütmesini ve verileri yönetmesini sağlar.
Npgsql Yükleme
Yeni oluşturduğunuz projeyi Visual Studio'da açın. Solution Explorer'da projenize sağ tıklayın, 'NuGet Paketlerini Yönet' seçeneğini seçin ve Npgsql paketini arayın. Paket isminin yanında bulunan yükleme düğmesine tıklayarak yükleyin. Bu eylem, Npgsql veri sağlayıcısını projenize ekleyerek uygulamanızın PostgreSQL ile iletişim kurmasını sağlar. Paket yöneticisi konsolunu kullanarak da kurabilirsiniz.

Veritabanı Bağlantısının Yapılandırılması
C# ile bir PostgreSQL veritabanıyla etkileşime geçmenin ilk adımı bir bağlantı kurmaktır. Bu, sunucu adı, port, kullanıcı adı ve parola gibi ayrıntıları içeren bir bağlantı dizesi gerektirir. İşte bir PostgreSQL bağlantı dizesi için temel bir şablon:
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"
localhost, yourpassword ve mydatabase değerlerini PostgreSQL sunucunuzun ayrıntıları ile değiştirin.
Çalışan Modelinin Tanımlanması
PostgreSQL veritabanında verilerimizi temsil edecek bir Çalışan varlık modeli tanımlıyoruz. Bu model, veritabanı tablosundaki sütunlarla eşleşen özellikler içerir.
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
Bu kod parçası, iki özelliği olan basit bir Çalışan sınıfını tanımlar: Id ve Soyad. Entity Framework Core, Id seri birincil anahtar özelliğinin birincil anahtar olarak ele alınması gerektiğini anlamak için kuralları kullanır.
Uygulamanın DbContext'ini Yapılandırma
AppDbContext sınıfı, Entity Framework Core'dan DbContext'i genişleterek, C# uygulamanız ile PostgreSQL veritabanı arasında bir köprü görevi görür. Bağlantı dizesi ve veritabanındaki tabloları temsil eden DbSet özellikleri gibi yapılandırma ayrıntılarını 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 : 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
-
DbSet Özelliği: public DbSet
Employees { get; set; } , PostgreSQL veritabanında çalışan tablosuna eşlenmiş olanEmployee varlıklarını tanımlar. -
OnConfiguring Metodu: Bu yöntem, ihtiyaçı olan veritabanı bağlantı dizesiyle DbContext yapılandırmasını yapar. your_password ve your_database değerlerini gerçek PostgreSQL sunucu ayrıntılarınız ile değiştirin.
- OnModelCreating Metodu: Burada, varlık davranışlarını daha da yapılandırmak için Fluent API'ini kullanabilirsiniz. Bu örnekte, tablo adını açıkça belirtiriz, ancak tablo adı DbSet özelliği adıyla eşleşiyorsa isteğe bağlıdır.
Temel Program Mantığı
Program sınıfının Main yönteminde, veritabanının oluşturulmasını sağlar, boşsa başlangıç verileri ile doldurur ve ardından çalışan verilerini almak ve göstermek için bir sorgu gerçekleştiririz.
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}");
}
}
}
}
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 Class
Yukarıdaki kod, veritabanının var olup olmadığını kontrol eder ve yoksa şema ile birlikte oluşturur. Bu, geliştirme sırasında yeni bir veritabanı oluşturmanın doğrudan bir yoludur. Bu SQL ifadesi, Çalışanlar tablosu boşsa, programın 'Software' soyadına sahip yeni bir Çalışan ekleyip değişiklikleri veritabanına kaydettiğini kontrol eder. Program, 'Software' soyadına sahip girişleri Çalışanlar tablosunda sorgular ve ayrıntılarını konsola yazdırır.
Çıktı
İşte programı çalıştırdığınızda konsol çıktısı:

Ve işte PgAdmin'deki tablo verileri:

IronPDF'ye Giriş
IronPDF Kütüphane Yeteneklerini Keşfedin ile nasıl bu kapsamlı C# kütüphanesi geliştiricilere PDF belgeleri oluşturmayı, düzenlemeyi ve manipüle etmeyi sağladığını anlayın. Bu güçlü araç, HTML'den PDF oluşturmayı, URL'leri ve görüntüleri daha basit hale getirir. Ayrıca, metin ve görüntü düzenleme gibi temel PDF işlemlerini ve şifreleme ve dijital imzalar gibi güvenlik özelliklerini eklemeye olanak tanır. IronPDF, kullanım kolaylığı ile öne çıkar, geliştiricilere minimal kodla karmaşık PDF işlevselliklerini uygulama imkanı tanır.
IronPDF, HTML'yi zahmetsizce PDF'ye dönüştürme yeteneği sunar, stilleri ve mizanpajları değiştirmeden. Bu özellik, web tabanlı içeriklerden raporlar, faturalar ve belgeler oluşturmak için mükemmeldir. HTML dosyalarını, URL'leri ve HTML dizelerini 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");
}
}
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
Veritabanınızda depolanan dinamik verilere dayalı PDF raporları veya belgeleri oluşturmanız gereken senaryolarda IronPDF'yi bir PostgreSQL veritabanı ile entegre etmek son derece yararlı olabilir. Bu, doğrudan PostgreSQL veritabanında saklanan verilere dayalı olarak faturalar, raporlar, müşteri ekstreleri ve daha fazlasını oluşturmayı kapsayabilir.
IronPDF Kurulumu
IronPDF'yi kullanmadan önce, projeye eklemeniz gerekir. NuGet Paket Yöneticisi aracılığıyla kolayca yapılabilir:
Install-Package IronPdf
PostgreSQL Verilerinden PDF Oluşturma
Bu örnekte, PostgreSQL veritabanımızdan çalışanları listeleyen basit bir PDF raporu oluşturalım. AppDbContext ve Çalışan modelinin önceki bölümlerde belirtildiği şekilde kurulu olduğunu varsayacağız.
Öncelikle, projenizde IronPDF kütüphanesinin kurulu olduğundan emin olun. Ardından, PostgreSQL veritabanından veri almak ve 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}");
}
}
}
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 veritabanı yönetimi dünyasına önemli bir ilk adım attınız. Bu eğitimdeki talimatları takip ederek, Visual Studio'da bir proje kurmayı, gerekli paketleri kurmayı ve temel veritabanı işlemlerini gerçekleştirmeyi öğrendiniz. Bu kavramlarla daha fazla aşina olduğunuzda, C#'ın en önemli ilişkisel veritabanı sistemlerinden biriyle birleşmesinin gücünü ve esnekliğini keşfedeceksiniz. C#'ın PostgreSQL ile nasıl etkileşime geçtiğine dair anlayışınızı derinleştirmek için farklı sorgular ve varlık yapılandırmaları ile denemeler yapmaya devam edin.
IronPDF, geliştiricilerin IronPDF özelliklerini keşfetmelerine imkan tanıyan ücretsiz bir deneme sunar, böylece başlangıç yatırımına ihtiyaç duymazsınız. Bu deneme, IronPDF'nin .NET uygulamalarında PDF belgelerini oluşturma, düzenleme ve dönüştürme gereksinimlerinizi ne kadar iyi karşıladığını değerlendirmek için özellikle yararlıdır. Deneme süresi sonrasında veya üretim kullanımı için bir lisans edinmek gereklidir. IronPDF lisanslaması $799'dan başlar ve farklı geliştirme ihtiyaçlarına uygun özellikler ve destek seçenekleri sunar.
Sıkça Sorulan Sorular
Bir C# uygulamasi PostgreSQL veritabanina nasıl baglanir?
Bir C# uygulamasını PostgreSQL veritabanına baglamak için Npgsql veri saglayicisini kullanmalisiniz, bu NuGet Paket Yöneticisi aracılığıyla Visual Studio'ya yüklenebilir. Ayrica sunucu adi, port, kullanici adi, parola ve veritabani adini iceren duzgun yapılandırılmış bir baglanti dizesine ihtiyaçiniz olacak.
Bir C# projesini PostgreSQL ile kurma asamalari nelerdir?
Ilk olarak, makinanıza Visual Studio ve PostgreSQL yükleyin. Daha sonra yeni bir C# projesi oluşturun ve Npgsql veri saglayicisini yüklemek için NuGet Paket Yöneticisini kullanın. İstemcinizi yapılandırin ve PostgreSQL sunucusunun calıştığından emin olun.
Bir C# uygulamasında SQL komutlarını nasıl çalıştırabilirim?
İlk olarak, PostgreSQL veritabanina bir baglanti kurduktan sonra Npgsql veri saglayicisini kullanarak SQL komutlarını çalıştırabilirsiniz. NpgsqlCommand kullanarak SELECT, INSERT, UPDATE ve DELETE gibi SQL sorgulari çalıştırabilirsiniz.
C#'da PostgreSQL verilerinden PDF raporlarini nasıl oluşturabilirim?
IronPDF, PostgreSQL verilerinden C# kullanarak PDF raporlarini oluşturmanıza olanak tanır. Veritabanından verileri alabilir ve IronPDF'in özelliklerini kullanarak HTML iceriginin PDF'ye dönüştürülmesi veya mevcut PDF'lerin düzenlenmesi dahil olmak uzere bir PDF belgesi oluşturabilirsiniz.
C#'da Npgsql veri saglayicisi kullanmanin amaci nedir?
C# icinde Npgsql veri saglayıcısı, PostgreSQL veritabanlarıyla iletişimi kolaylastırmak için kullanılır. Uygulama, SQL sorgulari çalıştırabilir, verileri yönetebilir ve veritabanı ile sorunsuz bir şekilde etkileşimde bulunabilir.
C# kullanarak bir veritabanı nasıl oluşturulabilir ve başlangic verileri nasıl eklenir?
C#'da, context.Database.EnsureCreated() metodunu kullanarak veritabanı oluşturabilir ve veritabanının var olup olmadığını kontrol edip değilse oluşturabilirsiniz. Başlangic verilerini sunucuya kaydetmek için verileri baglama ekleyebilir ve context.SaveChanges() kullanarak bunları kaydedebilirsiniz.
IronPDF'u bir .NET uygulamasinda kullanmanın faydaları nelerdir?
IronPDF, HTML'nin PDF'ye dönüştürulmesi, metin ve resimlerin düzenlenmesi ve şifreleme gibi güvenlik özellikleri eklenmesini destekleyerek .NET uygulamalarında güçlü işlevler saglayarak PDF belgeleri düzenleme ve manipüle etme konusunda güçlü faydalar sunar.
C#'da PostgreSQL tablosu için bir veri modeli nasıl tanımlanır?
C#'da, PostgreSQL tablosu yapiniza karsilik gelen bir sınıf oluşturarak bir veri modeli tanımlayabilirsiniz. Sınıftaki her bir özellik tabloda bir sutunla eslesmeli ve Boylece Entity Framework verileri doğru bir şekilde esleyebilir.
C# ve PostgreSQL arasindaki baglanti sorunlarini nasıl giderebilirim?
Baglantı sorunlarını gidermek için, baglanti dizinizin doğru yapılandirildigindan emin olun, PostgreSQL sunucunuzun çalıştigini doğrulayin, ve baglantiya engel olabilecek herhangi bir firewall veya ag sorununu kontrol edin.




