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 ?
Yaz Butonu içerisine yazacağımız kodlar :
Okuma Butonu içerisine yazacağımız kodlar :
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.)
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
Yorum Gönder