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.