IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

Sqlite C# .NET (Geliştiriciler için Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

SQLite, çeşitli veri erişim uygulama ve ortam platformlarında yaygın olarak kullanılan, popüler, hafif ve kendi kendine yeten bir ilişkisel veritabanı motorudur. .NET geliştirme bağlamında, SQLite kaynak kodu, sistem uygulamalarınıza güvenilir bir veritabanı çözüm kontrolünü entegre etmek için mükemmel bir seçim sunar. Bu makale, SQLite işlemleri dünyasına dalarak, özelliklerini, avantajlarını ve .NET projelerinizde nasıl etkili bir şekilde kullanılacağını inceleyecektir.

SQLite'ı C# ile Nasıl Kullanabilirsiniz

  1. SQLite kütüphanesini indirin
  2. Bir veritabanı oluşturulması ve veri eklenmesi
  3. Okuma işlemi okuyucu kullanılarak
  4. SQLite'ı Entity Framework ve LINQ sorgu yöntemiyle kullanın
  5. IronPDF kullanarak PDF Raporu Oluşturun

SQLite Nedir?

SQLite, ayrı bir sunucu bileşeni gerektirmeden uygulamalara gömülebilen popüler bir açık kaynaklı veritabanı motorudur. Hızlı, güvenilir ve platformlar arası çalışabilir. SQLite, ADO.NET arabirimleri sağlayan çeşitli kütüphaneler aracılığıyla .NET proje uygulamaları ile kullanılabilir. Bu kütüphanelerden biri Microsoft.Data.SQLite kütüphanesidir. Bu, .NET uygulamalarınız için SQLite'ı bir veri kaynağı olarak kullanmanıza olanak tanır; ister Konsol, Masaüstü, Web, ister Mobil olsun. Ayrıca, nesne-ilişkisel eşleme yapmak ve SQLite veritabanınızı LINQ kullanarak sorgulamak için Entity Framework Core kullanabilirsiniz.

Bu makale, bir .NET Konsol Uygulamasında SQLite veritabanını geliştirmek, bağlanmak ve manipüle etmek için Microsoft.Data.Sqlite kullanmayı gösterir. Öğreneceğiniz konular:

  • Microsoft.Data.Sqlite NuGet paketini yüklemek
  • SQLite bağlantısı oluşturmak ve SQL komutları yürütmek
  • Veri okuyucular ve parametreler kullanarak tablolar oluşturmak ve doldurmak
  • Veri okuyucuları kullanarak veri sorgulaması yapmak
  • EntityFramework Core'u uygulamak
  • LINQ kullanarak veri sorgulaması yapmak
  • PDF Raporu oluşturmak

SQLite Kütüphanesini Yüklemek

Microsoft.Data.Sqlite kütüphanesini kullanmak için, kütüphaneyi ve bağımlılıklarını içeren NuGet paketini yüklemeniz gerekir. Bunu Visual Studio Paket Yöneticisi, .NET Core CLI veya NuGet destekleyen herhangi bir araç ile yapabilirsiniz. Bu makalede Paket Yöneticisi kullanarak bir Konsol Uygulaması oluşturulacak ve Microsoft.Data.Sqlite yüklenecektir. Bunu yapmak için bir Paket Yöneticisi Konsolu açın ve aşağıdaki komutları çalıştırın:

PM > Install-Package Microsoft.Data.Sqlite

Yukarıdaki komut paketi aşağıda gösterildiği gibi yükleyecektir.

SQLite Veritabanı Oluşturmak

Bir SQLite veritabanı ile çalışmak için, veritabanı dosyasına olan bağlantıyı temsil eden bir SqliteConnection nesnesi oluşturmanız gerekir. Bağlantı dizesinde dosya adını ve diğer seçenekleri belirtebilirsiniz. Dosya mevcut değilse, otomatik olarak oluşturulacaktır. Örneğin, aşağıdaki program mevcut dizinde employee.db adlı bir veritabanı dosyasına bağlantı oluşturur:

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    connection.Open();
    // ...
}

using ifadesi, bağlantının kapsam dışına çıktığında kapatılmasını ve ortadan kaldırılmasını sağlar. SQL komutlarını yürütmek için bir SqlCommand nesnesi oluşturmanız ve bunu bağlantı ile ilişkilendirmeniz gerekir. CommandText özelliğini yürütmek istediğiniz SQL ifadesine ayarlayabilir ve isteğe bağlı olarak parametreleri Parameters koleksiyonuna ekleyebilirsiniz. Daha sonra komutu yürütmek için SqlCommand nesnesinin bir yöntemini çağırabilirsiniz, örneğin ExecuteNonQuery, ExecuteScalar veya ExecuteReader.

SQLite'da Tablo Oluşturmak

Aşağıdaki kod, ExecuteNonQuery yöntemi kullanılarak Employee adlı bir tablo oluşturur:

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    connection.Open();
    var command = connection.CreateCommand();
    command.CommandText = @"CREATE TABLE Employee (
        Id INTEGER PRIMARY KEY,
        FirstName TEXT NOT NULL,
        LastName TEXT NOT NULL,
        Designation TEXT NOT NULL )";
    command.ExecuteNonQuery();
}

Tabloya Veri Eklemek

Bir tabloya veri eklemek için aynı SqlCommand nesnesini kullanabilir ve CommandText özelliğini bir INSERT ifadesine ayarlayabilirsiniz. Örneğin, aşağıdaki kod Employee tablosuna üç satır ekler.

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    var command = connection.CreateCommand();
    StringBuilder builder = new StringBuilder();
    builder.Append("INSERT INTO Employee VALUES(1, 'John', 'Sami', 'CEO');");
    builder.Append("INSERT INTO Employee VALUES(2, 'David', 'Watson', 'Software Engineer');");
    builder.Append("INSERT INTO Employee VALUES(3, 'Victor', 'Khan', 'Content Writer');");
    connection.Open();
    command.CommandText = builder.ToString();
    command.ExecuteNonQuery();
}

SQLite'dan Veri Okumak

Bir tablodan veri okumak için, SqlCommand nesnesinin ExecuteReader yöntemini kullanabilir ve CommandText özelliğini bir SELECT ifadesine ayarlayabilirsiniz. Bu, satırlarda gezinmenize ve değerleri sütun adı veya indeksine göre erişmenize olanak tanıyan bir SqliteDataReader nesnesi döndürecektir. Bir sonraki satıra geçmek için Read yöntemini ve uygun veri türünde değerler almak için GetXXX yöntemlerini kullanabilirsiniz. Örneğin, aşağıdaki kod Employee tablosundan tüm satırları okur ve bunları konsola yazdırır:

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    var command = connection.CreateCommand();
    command.CommandText = @"SELECT * FROM Employee";
    connection.Open();
    using (var reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            var id = reader.GetInt32(0);
            string firstName = reader.GetString(1);
            string lastName = reader.GetString(2);
            string designation = reader.GetString(3);
            Console.WriteLine($"{id}: {firstName} - {lastName} - {designation}");
        }
    }
}

Çıktı

Bu kodun çıktısı şudur:

Sqlite C# .NET (Geliştiriciler için Nasıl Çalışır): Şekil 1 - Çıktı

Veri Sorgulama

SQLite veritabanınızı sorgulamak için LINQ kullanmayı tercih ederseniz, tablolarınızı sınıflara eşlemek ve LINQ ifadeleri kullanarak sorguları gerçekleştirmek için Entity Framework Core kullanabilirsiniz. Bunu yapmak için, Microsoft.Data.Sqlite paketine bağımlı olan Microsoft.EntityFrameworkCore.Sqlite paketini yüklemeniz gerekir. Ayrıca DbContext'dan türeyen ve veritabanı bağlamını temsil eden bir sınıf oluşturmanız gerekir. Bu sınıfın bir DbContextOptions parametresini kabul eden ve onu temel kurucuya aktaran bir kurucuya sahip olması gerekir. Ayrıca, bir sınıfa eşlemek istediğiniz her tablo için bir DbSet özelliğine sahip olmalıdır. Örneğin, aşağıdaki kod bir Stock sınıfı ve bir DatabaseContext sınıfı tanımlar:

using Microsoft.EntityFrameworkCore;
public class Stock
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public string Symbol { get; set; } = string.Empty;
    public double Price { get; set; }
}
public class DatabaseContext : DbContext
{
    public DatabaseContext(DbContextOptions options) : base(options) { }
    public DbSet<Stock> Stock { get; set; }
}

Veritabanı bağlamını oluşturmak için, DbContextOptionsBuilder sınıfını kullanmanız ve bağlantı dizgesini ve veritabanı sağlayıcısını belirtmeniz gerekir. Ayrıca Database.EnsureCreated yöntemini kullanarak veritabanı ve tabloları oluşturabilirsiniz, eğer mevcut değillerse. Örneğin, aşağıdaki kod veritabanı bağlamını ve veritabanını oluşturur:

var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
optionsBuilder.UseSqlite("Data Source=stock.db");
using (var context = new DatabaseContext(optionsBuilder.Options))
{
    context.Database.EnsureCreated();
}

Veritabanına veri eklemek için, DbSet özelliğinin Add veya AddRange yöntemlerini kullanabilir ve eklemek istediğiniz nesneleri geçebilirsiniz. Değişiklikleri veritabanına taahhüt etmek için ayrıca SaveChanges yöntemini kullanabilirsiniz. Örneğin, aşağıdaki kod veritabanına üç Stok ekler:

static void Main(string[] args)
{
    var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
    optionsBuilder.UseSqlite("Data Source=stock.db");
    using (var context = new DatabaseContext(optionsBuilder.Options))
    {
        context.Database.EnsureCreated();
        var stock = new List<Stock> {
            new Stock { Id = 1, Name = "NCR", Symbol = "$$", Price = 5.6 },
            new Stock { Id = 2, Name = "Google", Symbol = "GG", Price = 10.6 },
            new Stock { Id = 3, Name = "Apple", Symbol = "AA", Price = 3.6 }
        };
        context.AddRange(stock);
        context.SaveChanges();
    }
}

Verileri sorgulamak için DbSet özelliği üzerinde LINQ yöntemlerini veya ifadelerini kullanabilir ve filtreler, projeksiyonlar, toplamalara ve diğer işlemleri uygulayabilirsiniz. Sorgular, SQL cümlelerine çevriler ve veritabanında yürütülür. Örneğin, aşağıdaki kod fiyatı altı dolardan az olan stokları sorgular ve adlarını yazdırır:

using (var context = new DatabaseContext(optionsBuilder.Options))
{
    var cheapStocks = context.Stock.Where(p => p.Price < 6).Select(p => p.Name);
    Console.WriteLine("Stock Less than $6 are:");
    foreach (string stock in cheapStocks)
    {
        Console.WriteLine(stock);
    }
}

Bir Stok listesi içeren bir PDF dosyası oluşturma gereksinimimiz olan bir senaryo olduğunu varsayalım. Bunu IronPDF kullanarak kolayca yapabiliriz.

IronPDF Tanıtımı

IronPDF, birçok pakete ihtiyaç duymadan .NET uygulamalarınızda PDF dosyaları oluşturmanıza, düzenlemenize ve okumanıza yardımcı olan bir kütüphanedir. HTML, URL, JavaScript, CSS ve birçok görüntü formatından PDF oluşturabilir, ayrıca başlıklar, altbilgiler, imzalar, ekler ve parolalar ekleyebilir. Çapraz platform uyumluluğu, çok iş parçacıklılığı ve asenkron destek sunar.

IronPDF'nin HTML'den PDF'e Dönüştürme Özelliği, tüm düzenleri ve stilleri koruyarak en önemli özelliğidir. Web içeriğinden PDF'ler üretir, raporlar, faturalar ve dökümantasyon için idealdir. HTML dosyalarını, URL'leri ve HTML dizgilerini kesintisiz bir şekilde PDF'lere dönüştürebilirsiniz.

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");
    }
}

IronPDF Kurulumu

Projemize IronPDF kurmak için Paket Yöneticisi Konsoluna aşağıdaki komutu yazın.

PM > Install-Package IronPdf

Bu komut, IronPDF'yi tüm bağımlılıkları ile birlikte yükleyecektir.

Lisans Anahtarı Ekleme

IronPDF kullanmak için bir Lisans Anahtarı gerektirir. IronPDF Deneme Lisansı Sayfası'ndan kolayca bir deneme lisans anahtarı alabiliriz.

Bu kodu IronPDF kullanılmadan önce uygulamanızın başlangıcına ekleyin. Bu yaklaşım, hem .NET Core hem de .NET Framework uygulamaları için evrensel olarak etkili ve açıktır.

IronPdf.License.LicenseKey = "IRONSUITE.ABC.XYZ.MYCOMPANY.COM.ABC-DEPLOYMENT.TRIAL-P45MXL.TRIAL.EXPIRES.31.JAN.2028";

Stok Listesi İçeren PDF Dosyası Oluştur

Bu C# kodu, bir SQLite veritabanında depolanan stok verisinden bir PDF raporu oluşturur. Dinamik olarak bir HTML tablo oluşturur, stok bilgileri ile doldurur ve tabloyu indirilebilir bir "stock.pdf" dosyasına dönüştürmek için Chrome tabanlı bir PDF oluşturucu kullanır, stok detaylarının verimli raporlanmasını ve dağıtımını sağlar.

var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
optionsBuilder.UseSqlite("Data Source=stock.db");
StringBuilder builder = new StringBuilder();
string style="<!DOCTYPE html>\r\n<html>\r\n<head>\r\n<style>\r\n#stock {\r\n  font-family: Arial, Helvetica, sans-serif;\r\n  border-collapse: collapse;\r\n  width: 100%;\r\n}\r\n\r\n#stock td, #stock th {\r\n  border: 1px solid #ddd;\r\n  padding: 8px;\r\n}\r\n\r\n#stock tr:nth-child(even){background-color: #f2f2f2;}\r\n\r\n#stock tr:hover {background-color: #ddd;}\r\n\r\n#stock th {\r\n  padding-top: 12px;\r\n  padding-bottom: 12px;\r\n  text-align: left;\r\n  background-color: #04AA6D;\r\n  color: white;\r\n}\r\n</style>\r\n</head>\r\n<body>\r\n\r\n<h1>A Stock Table</h1>";
builder.Append(style);
builder.Append("<table id=\"stock\"><tr><td>Stock Symbol</td><td>Stock Name</td><td>Stock Price</td></tr>");
using (var context = new DatabaseContext(optionsBuilder.Options))
{
    var stocks = context.Stock;
    foreach (Stock stock in stocks)
    {
        builder.Append($"<tr><td>{stock.Symbol}</td><td>{stock.Name}</td><td>{stock.Price}</td></tr>");
    }
}
builder.Append("</table></body></html>");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(builder.ToString());
pdf.SaveAs("stock.pdf");

Yukarıdaki C# kodu parçası, bir SQLite veritabanından stok bilgilerini gösteren bir HTML tablo oluşturmak ve ardından bir PDF dosyasına dönüştürmek üzere tasarlanmıştır. Veritabanı ile etkileşim kurmak için Entity Framework Core kütüphanesini kullanır. Başlangıçta, belirli bir bağlantı dizesi ile SQLite kullanmak için bir DbContextOptionsBuilder yapılandırır. Kod daha sonra tablo görünümü için CSS stilleriyle gömülü bir HTML dizgesi oluşturur, başlıklarla birlikte bir tablo yapısı oluşturur, SQLite veritabanından stok bilgilerini sorgular, alınan verilerle HTML tablosunu doldurur ve son olarak, HTML içeriğini "stock.pdf" adlı bir PDF dosyasına dönüştürmek için Chrome tabanlı bir PDF oluşturucu kullanır. Sonuç olarak, PDF bir tablo içinde stok sembollerini, adlarını ve fiyatlarını gösterecektir.

Çıktı Şöyle

Sqlite C# .NET (Geliştiriciler için Nasıl Çalışır): Şekil 2 - Stok Tablosu Çıktısı

Sonuç

Sonuç olarak, .NET'te SQLite kullanmak, veritabanı yönetimi için hafif ve esnek bir çözüm sunar. Bu makale, SQLite'ın .NET uygulamalarına entegrasyonunu, temel özelliklerini ve avantajlarını gösteren bir keşif sundu. Sağlanan kod, .NET konsol uygulamasında bir SQLite veritabanı oluşturmanın, bağlanmanın ve manipüle etmenin pratik adımlarını gösterdi. Ek olarak, verimli veri işlemleri için Microsoft.Data.Sqlite ve Entity Framework Core'un kullanımına dikkat çekti. IronPDF'nin entegrasyonu, SQLite veritabanından PDF raporu nasıl üretilir konusunda bir örnek sunarak, uygulamanın raporlama ve veri dağıtımı kabiliyetlerini artırdı.

IronPDF, geliştirici sayısı, konumlar, projeler ve yeniden dağıtım ihtiyaçlarına bağlı olarak çeşitli lisans seçenekleri sunar. Lisanslar süresizdir ve bir yıl ücretsiz destek ve güncelleme içerir.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

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.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez