Evet arkadaşlar bu makalemde, güncellenebilir, silinebilir en önemlisi basit yoldan verilerin kayıt edilebilir şekilde bir proje yapicaz.
Öncelikle aşağıdaki gibi formumuzu dizayn edelim.
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Global alanda olusturdugumuz Serializable işlemi :
Kod: Kodu kopyalamak için üzerine çift tıklayın!
[Serializable]
publicstructKisi
{
publicstring AdiSoyadi;
publicstring Email;
publicstring GsmNO;
publicDateTime Dogumtarihi;
publicbool SevgilisiVarmi;
publicoverridestring ToString()
{
returnthis.AdiSoyadi;
}
}
Yine global alanda void bir method olusturuyoruz. İstediğimiz yerde bu methodu çağırabiliriz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
publicvoid Temizle()
{
foreach (Control item in groupBox2.Controls)
{
if (item isTextBox)
{
item.Text = "";
}
}
dateTimePicker1.Value = DateTime.Now;
checkBox1.Checked = false;
}
Form'un Load Kısmındaki Kodlarımız :
Kod: Kodu kopyalamak için üzerine çift tıklayın!
//form aclrken
try
{
//bilgiler nerede
FileStream fsAcilacak = newFileStream("C:\\kisiler.IRCForumlari", FileMode.Open);
//kim acacak
BinaryFormatter acici = newBinaryFormatter();
ArrayList gelenBilgiler =(ArrayList) acici.Deserialize(fsAcilacak);
fsAcilacak.Close();
foreach (Kisi item in gelenBilgiler)
{
listBox1.Items.Add(item);
}
}
catch (Exception)
{
}
Kaydet Butonun Altında Çalışan Kodlarımız :
Kod: Kodu kopyalamak için üzerine çift tıklayın!
//kisiler kaydedilir..
Kisi eklenecek = newKisi();
eklenecek.AdiSoyadi = txtAd.Text;
eklenecek.Dogumtarihi = dateTimePicker1.Value;
eklenecek.Email = txtEmail.Text;
eklenecek.GsmNO = txtGsm.Text;
eklenecek.SevgilisiVarmi = checkBox1.Checked;
listBox1.Items.Add(eklenecek);
Temizle();
Guncelle Butonun Altında Çalışan Kodlarımız :
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (listBox1.SelectedIndex != -1)
{
Kisi guncellenecek =(Kisi) listBox1.SelectedItem;
guncellenecek.AdiSoyadi = txtAd.Text;
guncellenecek.Dogumtarihi = dateTimePicker1.Value;
guncellenecek.Email = txtEmail.Text;
guncellenecek.GsmNO = txtGsm.Text;
guncellenecek.SevgilisiVarmi = checkBox1.Checked;
int cikartilacak = listBox1.SelectedIndex;
listBox1.Items.RemoveAt(cikartilacak);
listBox1.Items.Insert(cikartilacak, guncellenecek);
}
Sil Butonun Altında Çalışan Kodlarımız :
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (listBox1.SelectedIndex != -1)
{
listBox1.Items.Remove(listBox1.SelectedItem);
Temizle();
}
Temizle Butonunun Altında Çalışan Kodlarımız :
Kod: Kodu kopyalamak için üzerine çift tıklayın!
Temizle();
Listbox'un SelectedIndex'inde Çalışan Kodlarımız :
Yani Listbox üzerinde çift tıklayarak girdiğimiz kod alanıdır. Burdaki kodlarımız listbox'ta bir satır seçtiğimiz zaman çalışır.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
try
{
if (listBox1.SelectedIndex != -1)
{
//Kisi secilen = listBox1.SelectedItem as Kisi;
Kisi secilen = (Kisi)listBox1.SelectedItem;
txtAd.Text = secilen.AdiSoyadi;
txtEmail.Text = secilen.Email;
txtGsm.Text = secilen.GsmNO;
dateTimePicker1.Value = secilen.Dogumtarihi;
checkBox1.Checked = secilen.SevgilisiVarmi;
}
}
catch (Exception)
{
MessageBox.Show("Hata ile karsilasildi.");
}
Son olarak form kapatilirken yapilacak işlemler için aşağıdaki kod bloğunu kullaniyoruz. Form'un kapatılırken kodlarımızı çalıştırmak istersek Form'un event'lerinden FormClosing'e çift tıklayarak iç kısmına gitmemiz gerekir.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
//form kapanrken
//buradaki kodlarn tamam calsmadan form asla kapanmaz.
//1- listboxtaki her bir eleman arrayliste aktarlarak tek bir govde haline getirilir..
ArrayList kisiler = newArrayList();
foreach (Kisi item in listBox1.Items)
{
kisiler.Add(item);
}
//2- pc uzerinde kaydetme ilemini yapacak olan nesne hazrlanr.
//ekleme ilemini BinaryFormatter denilen nesne yapar. uzant degistirilebilir. genellikle dat dir. buyume kapasitesi harddiskinizin boyutu kadardir.
try
{
FileStream fsKaydedilecek = newFileStream("C:\\kisiler.IRCForumlari", FileMode.OpenOrCreate);
BinaryFormatter kaydedici = newBinaryFormatter();
kaydedici.Serialize(fsKaydedilecek, kisiler);
fsKaydedilecek.Close();
}
catch (Exception)
{
}
Evet sistemimizin çalışması için gerekli olan kod blokları bunlar. Bişey dikkatinizi çekmiş olması lazım, kaydedilen dosyanın uzantısını IRCForumlari yaptik, isterseniz kendi adınızda isterseniz farkli bir adlada kaydedebilirsiniz
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Diğer makalelerimde görüşmek üzere, hoşçakalın.