C# İle XML Belgesinden Veri Okuma ve Yazma

Bir çok soru aldığım bu konuda sizlere faydalı ve öğretici bir içerik çıkartmak istedim. Kodları sizinle paylaşıyor olmam sizlere bunu kullanın demem değildir. Kodları birlikte yazdık alıp kullanın elbette ama kendiniz tek tek yazdığınızda her şeyin daha faydalı olacağını unutmayın. Açıklamalarıyla yazdığım kodlarım umarım faydalı olacaktır.
Projelerinizde nasıl kullanabilirsiniz ?

  • Veritabanı bilgilerini yazabilirsiniz çok değişken bir şey olduğu için kodun içine yazmak yerine Md5 ile şifreleyerek veritabanı bilgilerini yazıp buradan çekebilirsiniz.
  • Mesela posta projenizde kullanabilir e posta verilerini çekebilirsiniz
  • Sürekli değişen verileri, oturum verilerini, sistem verileri yazıp çekebilir, silebilir, güncelleyebilirsiniz.
Benim aklıma gelenler bunlar ancak bir çok proje de kullanabilirsiniz. 
Kodlara geçelim !



Böyle bir ekran tasarımım var. Sırasıyla Textbox isimleri
  • Dizin : TextBox1
  • Değer1 : TextBox2
  • Değer2 : TextBox3
  • Değer3 : TextBox4
  • 4 adet label
  • 2 adet button 
araçlarını kullandım.

Eklememiz gereken kütüphaneler : 

using System.Xml.Linq;
using System.Xml;
using System.IO; //Bu kütüphanaleri dahil etmemiz gerek !

Yaz Butonu içerisine yazacağımız kodlar :

//Öncelikle dosya var mı kontrol ediyoruz varsa bir daha oluşturmaması için uyarı vereceğiz.
            if(File.Exists(textBox1.Text) == true)
            {
                MessageBox.Show("Dosya Zaten Var !", "Uyarı !", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                XmlTextWriter yaz = new XmlTextWriter(textBox1.Text, System.Text.UTF8Encoding.UTF8);
                yaz.Formatting = Formatting.Indented;
                //şimdi yazdırma işlemine geçiyoruz !
                //Try * Catch yapısını kullanmak istiyorum hata aldığımız da hatayı mesajda görelim diye
                try //çift Tab yaptım kendisi ekledim yapıyı.
                {
                    yaz.WriteStartDocument();//dosyaya yazmaya basla
                    yaz.WriteStartElement("Setting");//Ana elemet baslıgı Html etiketi gibi dusunun ilk bbasta acacak en sonda kapatacak !
                    yaz.WriteStartElement("Ayar");//Yine bir alt baslık Body etiketi gibi dusunun
                    yaz.WriteElementString("Başlık", "Mert Sağır ile Kodlamaya Dair Herşey !");//iki değer alır ilk değer xml etiketi ikinci değer içine yazacagımız veri
                    yaz.WriteElementString("Değer1", textBox2.Text);
                    yaz.WriteElementString("Değer2", textBox3.Text);
                    yaz.WriteElementString("Değer3", textBox4.Text);
                    yaz.WriteEndElement();//Setting elementini kapattık.
                    yaz.WriteEndElement();//ayar elementini kapatıtık.
                    yaz.Close();//yazma işlemini bitiridk.
                    textBox2.Clear();
                    textBox3.Clear();
                    textBox4.Clear();
                    MessageBox.Show("Dosya Başarıyla Oluşturuldu !", "Başarılı !", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //Önce textleri temizleyelim düzgün görünsün projemiz :)
                }
                catch (Exception ex)
                {
                    //Hata aldıysak
                    MessageBox.Show("Hata Mesajı : " + ex.Message, "Hata !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                //Hata almadık. Şimdi okuma işlemine geçelim !
            }

Okuma Butonu içerisine yazacağımız kodlar :

if(File.Exists(textBox1.Text) == true)
            {
                textBox2.Clear();
                textBox3.Clear();
                textBox4.Clear();
                //önce text kutularını boşaltalım yerıne yeni değerleri yazacagız.
                XDocument XDoc = XDocument.Load(textBox1.Text);//Dosya yolumuz.
                XElement rootElement = XDoc.Root;
                foreach (XElement rehberimiz in rootElement.Elements())
                {
                    textBox2.Text = rehberimiz.Element("Değer1").Value;//Yukarıda adlarını değer1-2-3 seklinde verdik burada da öyle cagırıcaz.
                    textBox3.Text = rehberimiz.Element("Değer2").Value;
                    textBox4.Text = rehberimiz.Element("Değer3").Value;
                    //şimdilik sorun yok gibi test edelim hemen
                    //Textleri değiştirmemimişiz hemen düzeltelim :)
                }
            }
            else
            {
                //Bu kez bulunamazsa hata verecek !
                MessageBox.Show("Dosya Bulunamadı, Lütfen Yolu Kontrol Edin !", "Uyarı !", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

Evet dostlar kodları tamamladığımızda sorunsuz çalıştığını göreceksiniz. İlgili videoyu izlemek için linke gidebilirsiniz. Görüşmek Üzere.

Video Link :
https://www.youtube.com/watch?v=7Iv9a-xMuHA

(Youtube Kanalımdan İzlemeniz benim yararıma bu sebeple linke ile yönlendiriyorum.)

Yorumlar

Bu blogdaki popüler yayınlar

Yazıcıda Bekleyen Belgeleri Hızlıca Temizleme

C# ile SQL Veritabanı Yedeğini Alma

SQL SERVER'da sa ve diğer kullanıcıları aktif etme