16 Mart 2013 Cumartesi

C# ile SQLite Kullanımı

Merhaba Webkolog takipçileri,

Bugün sizlere C# .NET Framework 4 ile hafif ve güçlü bir veritabanı çözümü olan SQLite'ı nasıl kullanacağımızı adım adım anlatacağım. SQL Server gibi büyük veritabanı sistemlerinin aksine, SQLite tek bir dosya halinde çalışır ve herhangi bir sunucu kurulumu gerektirmez. Bu özelliğiyle özellikle küçük ölçekli masaüstü uygulamaları, mobil uygulamalar veya sadece lokal veri depolama ihtiyaçları için biçilmiş kaftan!

---

SQLite Nedir ve Neden Kullanmalıyız?

SQLite, küçük boyutlu, hızlı ve gömülü bir SQL veritabanı motorudur. "Gömülü" olmasından kasıt, veritabanının uygulamanızın içine entegre olması ve ayrı bir sunucu sürecine ihtiyaç duymamasıdır. Tüm veritabanı, tek bir dosya (genellikle .sqlite veya .db uzantılı) olarak saklanır.

Neden SQLite tercih etmeliyiz?

  • Kolay Kurulum ve Dağıtım: Sunucu kurulumu yok, tek bir dosya kopyalamak yeterli.
  • Hafif ve Hızlı: Düşük kaynak tüketimiyle yüksek performans sunar.
  • Taşınabilirlik: Veritabanı dosyası kolayca taşınabilir ve farklı platformlarda kullanılabilir.
  • Sıfır Konfigürasyon: İlk kurulumda veya kullanım sırasında neredeyse hiçbir yapılandırma gerektirmez.
---

C# Projesine SQLite Entegrasyonu

C# projemizde SQLite kullanabilmek için öncelikle gerekli kütüphaneleri projemize dahil etmemiz gerekiyor. Bunun için System.Data.SQLite kütüphanesini kullanacağız.

1. System.Data.SQLite İndirme:

Öncelikle http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki adresine gidin. Buradan, kullandığınız Windows sürümüne (32-bit veya 64-bit) ve projenizin hedeflediği .NET Framework sürümüne (bizim durumumuzda .NET Framework 4) uygun olan "Precompiled Standard Binaries" veya "Setup" paketlerinden birini indirin. "Setup" dosyasını indirmek ve kurmak genellikle daha kolaydır.

2. DLL'i Projeye Dahil Etme:

İndirdiğiniz paketi kurduktan sonra, projenizde Solution Explorer'da References kısmına sağ tıklayıp Add Reference... seçeneğini seçin. Açılan pencerede Browse sekmesine gidin ve kurduğunuz System.Data.SQLite klasörüne gidin. Genellikle şu yolda bulabilirsiniz: C:\Program Files\System.Data.SQLite\[Kullandığınız_VS_Sürümü]\bin (örneğin C:\Program Files\System.Data.SQLite\2010\bin). Burada System.Data.SQLite.dll dosyasını seçip projenize ekleyin.

Eğer References kısmında System.Data.SQLite'ı görüyorsanız, kod yazmaya başlamadan önce C# dosyanızın en üstüne şu satırı ekleyin:

using System.Data.SQLite;
---

SQLite ile Temel Veritabanı İşlemleri

Şimdi gelelim asıl konuya: SQLite veritabanı oluşturma, bağlanma, tablo oluşturma ve veri ekleme/listeleme işlemlerine.

1. Veritabanı Dosyası Oluşturma:

SQLite ile çalışmaya başlamadan önce bir veritabanı dosyası oluşturmamız gerekiyor. Bu işlem oldukça basit.

// Veritabanı dosyamızın adını belirliyoruz
string dbName = "myAppDatabase.sqlite";

// Eğer dosya yoksa, yeni bir SQLite veritabanı dosyası oluşturur
if (!System.IO.File.Exists(dbName))
{
    SQLiteConnection.CreateFile(dbName);
    Console.WriteLine("Veritabanı dosyası başarıyla oluşturuldu: " + dbName);
}
else
{
    Console.WriteLine("Veritabanı dosyası zaten mevcut: " + dbName);
}

2. Veritabanına Bağlanma:

Veritabanı dosyamızı oluşturduktan sonra, tıpkı SQL Server'da olduğu gibi bir bağlantı nesnesi oluşturup bağlantıyı açmalıyız.

// Connection String oluşturuyoruz. Version=3, SQLite'ın sürümünü belirtir.
SQLiteConnection conn = new SQLiteConnection("Data Source=" + dbName + ";Version=3;");

try
{
    conn.Open(); // Bağlantıyı açıyoruz
    Console.WriteLine("Veritabanı bağlantısı başarıyla açıldı.");
}
catch (Exception ex)
{
    MessageBox.Show("Veritabanı bağlantısı kurulurken hata oluştu: " + ex.Message);
}

3. Tablo Oluşturma:

Bağlantıyı açtıktan sonra, verileri depolayacağımız tabloları oluşturabiliriz. Bunun için SQLiteCommand nesnesini kullanacağız.

// Tablo oluşturma SQL sorgusu
string sqlCreateTable = "CREATE TABLE IF NOT EXISTS Uyeler (id INTEGER PRIMARY KEY AUTOINCREMENT, ad VARCHAR(50), soyad VARCHAR(50), yas INT)";
// 'IF NOT EXISTS' eklemek, tablonun zaten var olup olmadığını kontrol eder ve varsa hata vermez.

SQLiteCommand command = new SQLiteCommand(sqlCreateTable, conn);
command.ExecuteNonQuery(); // Sorguyu çalıştırıyoruz
Console.WriteLine("Uyeler tablosu başarıyla oluşturuldu veya zaten mevcut.");

4. Veri Ekleme (INSERT):

Tablomuz hazır! Şimdi içerisine veri ekleyebiliriz. SQL Injection riskine karşı parametre kullanımını şiddetle tavsiye ederim.

SQLiteCommand insertCmd = new SQLiteCommand("INSERT INTO Uyeler (ad, soyad, yas) VALUES (@ad, @soyad, @yas)", conn);

// Parametreleri ekliyoruz
insertCmd.Parameters.AddWithValue("@ad", "Ayşe");
insertCmd.Parameters.AddWithValue("@soyad", "Can");
insertCmd.Parameters.AddWithValue("@yas", 28);

insertCmd.ExecuteNonQuery(); // Veriyi veritabanına kaydediyoruz
Console.WriteLine("Yeni üye başarıyla eklendi.");

// Son eklenen verinin ID'sini almak
insertCmd.CommandText = "SELECT last_insert_rowid()"; // SQLite'da son eklenen ID'yi almak için özel bir fonksiyon
long lastId = (long)insertCmd.ExecuteScalar(); // Tek bir değer döndüren sorgular için ExecuteScalar kullanılır
Console.WriteLine("Eklenen son üyenin ID'si: " + lastId);

5. Veri Listeleme (SELECT):

Eklediğimiz verileri okumak için SQLiteDataReader kullanacağız.

SQLiteCommand selectCmd = conn.CreateCommand(); 
selectCmd.CommandText = "SELECT * FROM Uyeler";

SQLiteDataReader dr = selectCmd.ExecuteReader(); // Verileri okumak için DataReader kullanıyoruz

Console.WriteLine("\nUyeler Tablosu:");
while (dr.Read()) // Satır satır okuyoruz
{
    // Verilere sütun adı veya indeks ile erişebiliriz
    Console.WriteLine($"ID: {dr["id"]}, Ad: {dr["ad"]}, Soyad: {dr["soyad"]}, Yaş: {dr["yas"]}");
    // Veya: MessageBox.Show(dr["id"].ToString() + " " + dr["ad"].ToString() + " " + dr["yas"].ToString());
}
dr.Close(); // DataReader'ı kapatmayı unutmayın!

6. Bağlantıyı Kapatma:

İşlemlerimiz bittikten sonra veritabanı bağlantısını kapatmayı unutmamalıyız. Bu, kaynakları serbest bırakmak için önemlidir.

conn.Close();
Console.WriteLine("Veritabanı bağlantısı kapatıldı.");
---

Gördüğünüz gibi, C# .NET Framework 4 ile SQLite kullanmak oldukça basit ve anlaşılır. Tek bir dosya üzerinden tüm veritabanı işlemlerinizi kolayca halledebilirsiniz. Özellikle kurulum kolaylığı ve taşınabilirliği sayesinde, birçok projenizde size büyük avantajlar sağlayacaktır.

Umarım bu makale, SQLite'ın gücünü keşfetmenize ve projelerinizde kullanmaya başlamanıza yardımcı olmuştur. Şimdi sıra sizde, kodlamaya başlayın!

Webkolog'u takipte kalın!

Hepinize bol kodlu ve başarılı projeler dilerim!

0 yorum:

Yorum Gönder