Visual Studio üzerinde SQLite Database kullanımı

Merhabalar, bu makalemde sizlere Visual Studio üzerinde örneğin c# ile SQLite Database nasıl kurulur ve kullanılır gibi sorularınıza yanıt verdim. Yararlı olması dileğiyle...

Neden Sqlite ?

  • Çünkü sqlite herhangi bir işletim sistemine bağlı kalmadan çalışır, açık kaynaklıdır.
  • Access veritabanına alternatif çözümdür, Ayrıca bir ofis paketi kurulumu gibi bir zorunluluğu yoktur.
  • Sadece bireysel olarak kullanmanız gereken durumlarda tercih edilir.
  • SQL Server programına daha önce kurulmasına ihtiyaç duymaz. SQLite için windows paketini kurmanız yeterli olacaktır.

Kuruluma başlıyoruz;

  • http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki adresine giriniz,
  • İlgili Windows 32/64bit sürümü için, mevcut bir .NET Framework kullanımını baz alarak indiriniz.
  • ardından c# projenize; indirdiğiniz programı kurduktan sonra System.Data.SQLite.dll uzantılı dosyayı,
  • Project -> Add Reference kısmından .dll'in konumunu seçerek projenize dahil ediniz.
  • Dahil etmek istediğiniz .dll dosyası; C > Program Files > System.Data.SQLite > 2008 > bin içerisinde gibi olmalıdır.

Kullanıma başlıyoruz;

.dll'i References kısmında görüyorsanız, projenizin kod kısmında using bölümünde de, using System.Data.SQLite; görüyor olmalısınız, yoksa ekleyin.

Örnek1 - sqlite veritabanı dosyası ve tablo oluşturma;

  • string dbName = "myDB.sqlite";
  • SQLiteConnection.CreateFile(dbName);
    • Yoksa oluşturacaktır.
  • SQLiteConnection  conn = new SQLiteConnection("Data Source="+ dbName + ";Version=3;");
    • Version3, indirdiğimiz SQLite'in  sürümünü temsil etmektedir.
  • conn.Open();
  • string sql = "create table uyeler (id INTEGER PRIMARY KEY, name varchar(20), yas int)";
    • SQL tablomuzu id'nin int değer alacak ve benzersiz bir key olması ve auto increment olması durumunda; id INTEGER PRIMARY KEY kullanıyoruz.
  • SQLiteCommand command = new SQLiteCommand(sql, conn);
  • command.ExecuteNonQuery();

Örnek2 - Oluşturduğumuz tabloya veri ekleyelim;

  • string sql1 = "insert into uyeler (id,name, yas) values (NULL,'Şerif GÜNGÖR', 22)";
    • eğer id sütununu belirtecek iseniz, değer olarak NULL olmasına özen gösteriniz, çünkü otomatik değer almasını bir önceki örneğimizde belirtmiştik.
  •  SQLiteCommand command1 = new SQLiteCommand(sql1, conn);
  • command1.ExecuteNonQuery();

Örnek 3 - Verilerimizi Listeleyelim;

  • SQLiteCommand cmd = conn.CreateCommand();
  • cmd.CommandText = "select * from uyeler";
  • cmd.ExecuteNonQuery();
  • SQLiteDataReader dr = cmd.ExecuteReader();
  • while (dr.Read()){
    • MessageBox.Show(dr["id"].ToString()+ dr["name"].ToString()+ dr["yas"].ToString());
  • }
  • conn.Close();

 

Bu makaleyi paylaşın:

3 Comments

  1. Teşekkürler yararlı bir makale. Açıkçası uygulamada veritabanı işlemleri yaptırıyorum.Kullanıcı msaccess gibi basit veritabanını kullanmak zorunda değil.Yada en basitinden service-base db kullanıp kullanıcıya sql express indirmesini zorlamaktansa sqllite daha cazip geldi bana.Tekrardan teşekkürler.

  2. Daha önce yarım kalan oturumumda o sekme kapandığı için arama motoruna tekrar sorgumu yazdım ve sonuçla Türkçe bir başlık görünce hemen geldim ancak anlatım ve içerik bildiğin kopyala yapıştır olmuş, tamam bir blog süsleyip püsleyip grafiklerle desteklenmesi büyük bir önem arz etmiyor olabilir ama bir şey anlaşılmıyor, başa unutursam bakarım şeklinde bir ibare de eklseymişsiniz, ilk kez yapacaklar için ektra araştırma gereği oluşturan cinsten. Bu yorumu neden yaptım; "İstanbul'da yaşıyorum.Web üzerinde Frontend/Backend Geliştirmenin yanı sıra, Android Geliştirme, PHP/ASP.NET, C# Yazılım Uzmanlığı ve Java konuları işliyorum. Kod Şiirdir, onları seviyorum." şeklinde bir yazar bilgisi var, eğer kodları şiir gibi görüyorsanız neden bir "yazılım uzmanı" gibi özenmiyorsunuz, son zamanlarda uzman kelimesi herkesin kullandığı bir ünvan olmaya başladı, buna uygun şeyler yapmalısınız. Elbette bir acemi olarak eleştirmek bana pek yakışmasa da el oğlunun blogları daha nizami iken ben yerli blog okurken bunu yer imlerime eklemeliyim diyemiyorsam bir sorunun varlığına işarettir. :)

  3. MUHLİS İÇAL2018-03-05 10:51:12

    hocam teşekkürler, ancak veritabanını nereye kaydediyor onu bulamadım

Bir yorum bırakın