C# WinForms ve Mono GTK Console Sistem ve Servis Programlama SQL ve XML Gibi DataSource Tipleri

Portatif Veritabanı

Kullanıcının yerelinde saklamak istediğiniz bazı veriler olduğunda sqllite gibi bana karmaşık gelen bir veritabanı kullanabilirsiniz. Fakat c# geliştiricileri için gayet anlaşılır olan bir veritabanı tercih ediyorum. Bunun adı LiteDB (resmi sayfası).  Nuget ile projemize paketleri dahil ediyoruz (>Install-Package LiteDB). Aşağıdaki örnekte kullanımını paylaşmış bulunuyorum.

using LiteDB;

namespace litedbTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            using (var db = new LiteDatabase(@"ldb.db"))
            {
                var vr = db.GetCollection<veriler>("veriler");
                veriler vrs = new veriler()
                {
                    aciklama= textBox1.Text
                };
                vr.Insert(vrs);
            }
            listele();
        }

        void listele()
        {
            listView1.Items.Clear();
            using (var db = new LiteDatabase(@"ldb.db"))
            {
                var vr = db.GetCollection<veriler>("veriler");
                foreach (var item in vr.FindAll())
                {
                    ListViewItem lvi = new ListViewItem(item.Id.ToString());
                    lvi.SubItems.Add(item.aciklama);
                    listView1.Items.Add(lvi);
                }
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            listele();
        }

        private void listView1_DoubleClick(object sender, EventArgs e)
        {
            ListView lv = (ListView)sender;
            ListViewItem lvi = lv.SelectedItems[0];
            using (var db = new LiteDatabase(@"ldb.db"))
            {
                var vr = db.GetCollection<veriler>("veriler");
                vr.Delete(x=>x.Id==Convert.ToInt32(lvi.Text));
            }
            listele();
        }
    }

    class veriler
    {
        public int Id { get; set; }
        public string aciklama { get; set; }
    }
}

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir