XML Kaydetme Silme Güncelleme



Dosyayı buradan indirebilirsiniz.
Personeller.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace XmlTextReaderWriter
{
class Personeller
{
public string Ad { get; set; }
public string Soyad { get; set; }
public decimal Maas { get; set; }
public override string ToString()
{
return this.Ad + " " + this.Soyad;
}
}
}
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.IO;//xmltextreader xmltextwriter nesneleri için
namespace XmlTextReaderWriter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<Personeller> liste = new List<Personeller>();
const string dosya = "..\\..\\veriler.xml";
bool guncellemeMi = false;
int seciliindeks;
int secilikaydet;
private void Form1_Load(object sender, EventArgs e)
{
if (File.Exists(dosya))
{
DosyadanGetir(liste);
}
}
private void DosyadanGetir(List<Personeller> liste)
{
lstPersoneller.Items.Clear();
XmlTextReader okuyucu = new XmlTextReader(dosya);
while (okuyucu.Read())
{
if (okuyucu.NodeType != XmlNodeType.Element) continue;
Personeller p = new Personeller();
okuyucu.ReadToFollowing("Ad");
p.Ad = okuyucu.ReadInnerXml();
okuyucu.ReadToFollowing("Soyad");
p.Soyad = okuyucu.ReadInnerXml();
okuyucu.ReadToFollowing("Maas");
p.Maas = decimal.Parse(okuyucu.ReadInnerXml());
liste.Add(p);
lstPersoneller.Items.Add(p);
}
okuyucu.Close();
}
private void btnKaydet_Click(object sender, EventArgs e)
{
if (guncellemeMi == false)
{
Personeller p = new Personeller();
p.Ad = txtAd.Text;
p.Soyad = txtSoyad.Text;
p.Maas = nudMaas.Value;
liste.Add(p);
lstPersoneller.Items.Add(p);
lblAciklama.Text = p.Ad + " " + p.Soyad + " kaydedildi..";
//vazgeçmiş gibi çalış
btnVazgec.PerformClick();
}
else
{
liste.RemoveAt(seciliindeks);
guncellemeMi = false;
Personeller p = new Personeller();
p.Ad = txtAd.Text;
p.Soyad = txtSoyad.Text;
p.Maas = nudMaas.Value;
liste.Insert((seciliindeks), p);
lstPersoneller.Items.Clear();
lstPersoneller.Items.AddRange(liste.ToArray());
}
}
private void btnVazgec_Click(object sender, EventArgs e)
{
txtSoyad.Clear();
txtAd.Clear();
nudMaas.Value = 0;
txtAd.Focus();//imleç txtAd da beklesin
}
private void btnYazdir_Click(object sender, EventArgs e)
{
XmlTextWriter yazici = new XmlTextWriter(dosya, Encoding.Unicode);
yazici.Formatting = Formatting.Indented;
yazici.Indentation = 3;
yazici.WriteStartDocument();//<?xml version="1.0" ?> kısmını yazduk
//root element ya da DocumentElement
yazici.WriteStartElement("Personeller");
foreach (Personeller item in liste)
{
yazici.WriteStartElement("Personel");
yazici.WriteElementString("Ad", item.Ad);
yazici.WriteElementString("Soyad", item.Soyad);
yazici.WriteElementString("Maas", item.Maas.ToString());
yazici.WriteEndElement();
}
yazici.WriteEndElement();
yazici.WriteEndDocument();
yazici.Close();
//MessageBox.Show("Dosya kaydedildi...");
lblAciklama.Text = "Dosya kaydedildi";
}
private void btnOku_Click(object sender, EventArgs e)
{
liste.Clear();
lstPersoneller.Items.Clear();
DosyadanGetir(liste);
}
private void button1_Click(object sender, EventArgs e)
{
int secilenindeks = lstPersoneller.SelectedIndex;
if (secilenindeks < 0) return;
lstPersoneller.Items.RemoveAt(secilenindeks);
liste.RemoveAt(secilenindeks);
lblAciklama.Text = "Kayıt Silinmiştir.";
//MessageBox.Show("Kayıt silinmiştir");
btnYazdir.PerformClick();
}
private void button2_Click(object sender, EventArgs e)
{
guncellemeMi = true;
seciliindeks = lstPersoneller.SelectedIndex;
if (seciliindeks < 0) return;
//lstPersoneller.Items.RemoveAt(seciliindeks);
//liste.RemoveAt(seciliindeks);
txtAd.Text = Convert.ToString(liste[Convert.ToInt32(seciliindeks)].Ad);
txtSoyad.Text = Convert.ToString(liste[Convert.ToInt32(seciliindeks)].Soyad);
nudMaas.Value = liste[seciliindeks].Maas;
}
}
}
çok teşekkürler murat abi. güzel anlatmışın.