İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# XML Veri Güncelleme & DataGridView’den Veri Çekme

C# XML Veri Güncelleme & DataGridView’den Veri Çekme
+ - 0

C# XML Veri Güncelleme & DataGridView’den Veri Çekme dersimiz ile C# XML Üzerine işlemler ders serime devam ediyorum. Bu dersimizde bir XML dosyaya eklenmiş olan verinin nasıl güncelleneceğini göreceğiz.

C# XML Veri Güncelleme & DataGridView’den Veri Çekme

Bu dersimizde hem XML veri güncelleme konusunu hemde DataGridView ‘den veri çekme işlemini göreceğiz. Neden DataGridView Veri Çekme işlemini görüyoruz derseniz, hazırladığım örnekte bu şekilde olduğu için. ;)

XML üzerine işlemler  ders serimizin önceki derslerimizde xml verileri girdde gösterme konusunu işlemiştik. Bu dersimiz o ders ile bağlantılı bir derstir. Öncelikle verilerimizi DataGridView’de gösterme kodlarımıza tekrar bakalım.

Değişkenlerimiz;

        XDocument xDoc = new XDocument();
        string directory_path = _000_Classlar.Global.AppPath + "//XML";
        string file_path = _000_Classlar.Global.AppPath + "//XML//Personeller.xml";
        int xml_ID = 0;

DataGridView_Doldur;

        void DataGridView_Doldur(string path)
        {
            DataSet dataSet = new DataSet();
            dataSet.ReadXml(path);
            try
            {
                dataGridView1.DataSource = dataSet.Tables[0];
            }
            catch (IndexOutOfRangeException)
            {
                lbl_bildirim.Text = "XML Dosyası boş olduğundan gösterilecek veri bulunamadı.";
            }
        }
  1. Bir dataset tanımladık.
  2. Bu tanımladığımız DataSet’in ReadXml metodu ile xml dosyamızı okuduk.
  3. Okunan xml dosyası DataSet içerisindeki ilk tablo olarak alındığı için;
  4. DataGridView’in datasource (Veri Kaynağı) özelliğine DataSet’in ilk sıradaki tablosunu gösterdik.
  5. IndexOutOfRangeException sınıfı ile de xml dosyası boş mu değil mi diye kontrol ettik.
    1. Bu kontrolü Try Catch Anlatımı dersimde ayrıntılı bir şekilde görebilirsiniz.

DataGridView doldurma kodlarımız bu kadar. Şimdide DataGridView’den veri çekme işlemine bir bakalım.

       private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            var dataIndexNo = dataGridView1.Rows[e.RowIndex].Index.ToString();
            txt_ad.Text = dataGridView1.Rows[e.RowIndex].Cells["ad"].Value.ToString();
            txt_soyad.Text = dataGridView1.Rows[e.RowIndex].Cells["soyad"].Value.ToString();
            txt_id.Text = dataGridView1.Rows[e.RowIndex].Cells["id"].Value.ToString();
            xml_ID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["id"].Value.ToString());
        }
  1. İlk olarak işlem yaptığımız satırın index numarasını almak olacak.
  2. İkinci işlem olarak da kolon adlarına göre gerekli olan verileri alıp formdaki nesnelere atamasını yapıyoruz.

DataGridView’den verileri alma işlemimiz buraya kadardı. Şimdi XML sırada sadece XML Verilerini Güncelleme işlemi var.

        void XML_Veri_Guncelle()
        {
            xDoc = XDocument.Load(file_path);

            XElement rootElement = xDoc.Root;

            foreach (XElement Personeller in rootElement.Elements())
            {
                if (Personeller.Attribute("id").Value == txt_id.Text)
                {
                    Personeller.Element("ad").Value = txt_ad.Text;
                    Personeller.Element("soyad").Value = txt_soyad.Text;
                    break;
                }
            }
            xDoc.Save(file_path);

            DataGridView_Doldur(file_path);
        }

Yukarıda gördüğümüz kodlar XML Veri Güncelleme kodlarıdır. Şimdi bu kodlarımızı açıklayalım.

  1.  İlk olarak XML dosyamızın yüklemesini yapıyoruz.
  2. Root yani kök elementimizi alıyoruz.
  3. Foreach döngümüz ile kök elementin içindeki ana elementler arasında gezintiye çıkıyoruz
    1. Personeller adı verdiğimiz XElement’ler arasında Attribute’si yani özelliği “id” olan elementin değeri, bizim txt_id nesnemize yazdığımız veri ile uyuşuyor ise
    2. Personeller adı verdiğimiz XElement’ler arasında Attribute’si yani özelliği “ad” olan elementin değerini, bizim txt_ad nesnemize yazdığımız veri ile değiştiriyoruz.
    3. değişiklikler yapıldıktan sonra Break; ile döngüden çıkıyoruz.
  4.  Dosyamızı kaydediyoruz.
  5. Yeni verileri DataGridView’de gösteriyoruz.

 

**********************************************************

C# XML Üzerine İşlemler

Şuanki planıma göre toplamda 17 yazılık bir seri olacak. Genel başlıklar ise aşağıdaki gibi olacak. Elbette liste değişebilir. Belki bazılarından vazgeçerim belki dersleri birleştiririm belli olmaz.

  1. √ – XML Nedir? Kullanımı, Temel Özellikleri ve Örneği
  2. √ – XML Oluşturma
  3. √ – XML Verileri Gridde Gösterme
  4. √ – XML Veri Ekleme
  5. √ – XML Veri Güncelleme
  6. √ – XML Veri Silme
  7. √ – XML İşlemleri Class Hazırlama
  8. √ – XML URL’den Okuma
    • Bu ders için ek bir ders açmamaya karar verdim.  file_path değişkenine xml url si yazmanız yeterli olacaktır.
  9. √ – DataSet ile XML Dosyası Nasıl Oluşturulur
  10. √ – XML Dosyası ile DataSet Nasıl Oluşturulur ve Okunur?
  11. √ – SQL’den bir XML dosyası nasıl oluşturulur
    • Bu ders içinde ek bir ders açmamaya karar verdim. SQL server bağlantısı yapıp bir select sorgusunu dataset’e atamasını yaptıktan sonra 9. maddedeki işlemleri uygulayabilirsiniz.
  12. √ – XML dosyasında nasıl arama yapılır?
  13. √ – Bir XML dosyasında filtreleme
  14. √ – XML’den veritabanına veri nasıl eklenir
    • Bu ders içinde ek bir ders açmamaya karar verdim. DataSet’e eklediğimiz verileri for döngüsü ile sql’e kaydet işlemi yapıyoruz sadece. Bu sebeple ek ders eklemeye gerek yok arkadaşlar.
  15. √ – XML’den Excel dosyası nasıl oluşturulur
    • Bu dersi hazırlarken kodlarda bir sorun yaşadım ve o sorunu çözemedim. Bu sebeple bu dersi iptal ediyorum arkadaşlar. Elbette bu kodlar çok önceden elimde vardı. büyük ihtimalle bu sebeple çalışmadılar.
  16. √ – Excel’den XML dosyası nasıl oluşturulur
  17. √ – XML dosyasından bir TreeView nasıl oluşturulur

Hatta bu listeyi, bu serideki her yazının altına eklerim.

**********************************************************


C# XML Veri Güncelleme & DataGridView’den Veri Çekme dersimizde buraya kadardı arkadaşlar. Diğer derslerimizde görüşmek üzere…

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Takipte ve Sağlıcakla kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)