C# yapılan programda eklenen elemanların silinmemesi nasıl yapılır?

SQLite ile veri tabanı dosyası oluşturup onu kullanabilirsiniz. Ben öyle yapıyorum. Programı gönderirken o dosyayı da gönderirseniz arkadaşınız programı sorunsuz kullanabilir. Veri tabanı yerine JSON ya da XML de kullanabilirsiniz. Hatta bir not defteri bile işinizi görür. Not defteri ile şöyle yapabilirsiniz:
Tüm kitapları bir not defterine kaydedin. Program açılırken not defterini okutup kitapları listBox'a ekleyin. Bir kitap "Okunmuş Kitaplarım" listesine eklendiğinde not defteri içerisinde bu kitabı bulup başına bir işaret koyun. Örneğin artı (+) işareti. Program yeniden açıldığında not defterinde başında + olan kitapları okunmuş kitaplar, + olmayan kitapları da normal kitaplar listesine eklesin.
 
SQLite kullanabilirsin, SQL server kurmana gerek kalmaz ya da yukarıda bahsedildiği gibi XML, csv, JSON'da işini görür. Tavsiyem SQLite ya da JSON.
 
Settings File diye bir sistemde var fakat o aynı bilgisayar içerisinde kapatıp, açıldığında kullanım imkanı sağlıyor. Başka bir bilgisayara aktardığınızda değerler yine sıfırlanıyor.
Application based ve user based olarak değişir onlar. Applciation based yapılırsa her bilgisayarda çalışır ama veriler düzenlenemez.
 
database.PNGdatabaseselect.PNGdatabase1.PNGdatabase2.PNG
 
SQLite ile veri tabanı dosyası oluşturup onu kullanabilirsiniz. Ben öyle yapıyorum. Programı gönderirken o dosyayı da gönderirseniz arkadaşınız programı sorunsuz kullanabilir. Veri tabanı yerine JSON'ya da XML de kullanabilirsiniz. Hatta bir not defteri bile işinizi görür. Not defteri ile şöyle yapabilirsiniz:
Tüm kitapları bir not defterine kaydedin. Program açılırken not defterini okutup kitapları ListBox'a ekleyin. Bir kitap "Okunmuş Kitaplarım" listesine eklendiğinde not defteri içerisinde bu kitabı bulup başına bir işaret koyun. Örneğin artı (+) işareti. Program yeniden açıldığında not defterinde başında + olan kitapları okunmuş kitaplar, + olmayan kitapları da normal kitaplar listesine eklesin.

E hocam bu dediğinizi yaparsam daha sonra program üzerinden bir kitap eklendiğinde not defterinede kayıt edilecek mi?
 
Öncelikle sorumu başlıkta tam ifade edip edemediğimden emin değilim. O yüzden detaylı olarak sorumu anlatacağım. Şimdi ben daha önceki açmış olduğum konularda C# da yeni olduğumu belirtmiştim. Şimdi kendimi yavaş yavaş geliştirmek için küçük programlar yapıyorum. Az önce kütüphane otomasyonu gibi bir şey yaptım. Şimdi bu programdan arkadaşlarımda istiyor fakat şöyle bir durum varki eklenen kitaplar vs. program kapatıp açıldığında siliniyor. Bunun kaydını nasıl yapabilirim? Yani programı yaptım arkadaşıma gönderdim daha sonra o istediği kitapları ekledi programı kapattı sonra yine açtı o kitaplara başka kitapları da ekledi. Bunu nasıl sağlayabilirim? Detaylı anlatırsanız sevinirim.

Eki Görüntüle 1269366
Size şu şekilde bir taslak hazırladım:
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Kutuphane
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
            this.Load += new System.EventHandler(this.Form1_Load);
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            foreach (string item in kitaplarListesi.Items)
            {
                Properties.Settings.Default.kitaplar += item + ",";
            }
            foreach (string item in okunanlarListesi.Items)
            {
                Properties.Settings.Default.okunanlar += item + ",";
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            kitaplarListesi.Items.AddRange(Properties.Settings.Default.kitaplar.Split(','));
            okunanlarListesi.Items.AddRange(Properties.Settings.Default.okunanlar.Split(','));

        }
    }
}

Bu kod kapandığında ve açıldığında kullanıcı profilinizdeki AppData isimli klasörden veri çekme ve kaydetme yapıyor. Tamamen string değişkenler ile işlem yapıyor. Veri tabanı ile uğraşmaya gerek yok.

Verileri kaydettiği alan ise şu şekilde:
1642109678732.png


Bu yöntemle veri tabanı yada ekstra dosya ile uğraşmamış olursunuz. Uygulama hepsini kendi hallediyor.
 
Size şu şekilde bir taslak hazırladım:
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Kutuphane
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
            this.Load += new System.EventHandler(this.Form1_Load);
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            foreach (string item in kitaplarListesi.Items)
            {
                Properties.Settings.Default.kitaplar += item + ",";
            }
            foreach (string item in okunanlarListesi.Items)
            {
                Properties.Settings.Default.okunanlar += item + ",";
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            kitaplarListesi.Items.AddRange(Properties.Settings.Default.kitaplar.Split(','));
            okunanlarListesi.Items.AddRange(Properties.Settings.Default.okunanlar.Split(','));

        }
    }
}

Bu kod kapandığında ve açıldığında kullanıcı profilinizdeki AppData isimli klasörden veri çekme ve kaydetme yapıyor. Tamamen string değişkenler ile işlem yapıyor. Veri tabanı ile uğraşmaya gerek yok.

Verileri kaydettiği alan ise şu şekilde:
Eki Görüntüle 1269386

Bu yöntemle veri tabanı yada ekstra dosya ile uğraşmamış olursunuz. Uygulama hepsini kendi hallediyor.
Bu en basit çözüm ama programı bilgisayardan sildikten sonra AppData içerisinde programın oluşturduğu dosyayı bulup silmeniz gerek.
 
Microsoft access kullan. Hali hazırda tüm bilgisayarda olan kullanımı kolay bir veritabanı karşı taraf başka programlarla uğraşmamış olur.
 

Yeni konular

Geri
Yukarı