C Sharp – Form Application Dataset ile XML Veri Kaydetme, Düzenleme ve Silme İşlemleri

C Sharp ile DataSet kullanarak formda oluşturduğumuz ilgili değerleri XML’e yazıyor, daha sonra düzenleme ve silme işlemlerini yapabiliyoruz.İş Detay adında verilerimiz mevcut bunlar İş sıra No, İş Detay 1 ve İş Detay 2.Bunları ilk önce kullanıcıdan textbox’lar aracılığı ile alıp datagridview’e kaydediyoruz.Daha sonrasında ise datagridview içindeki verileri dataset ile XML dosyasına aktarabiliyoruz.Eğer programı daha önceden kullanıp veriler kaydetmişsek “Bilgileri XML dosyasından al” butonunu kullanarak verilerimizi XML’den datagridView’e çekiyoruz.Programı ilk açtığımızdan itibaren hiçbir veriyi kaydetmemişsek XML’den verileri yüklerken karşımıza messagebox ile bir hata mesajı çıkıyor.Verilerimizi XML’e kaydederek verilerimizi daha sonraki kullanımlar için saklamış oluyoruz.Eğer XML veya başka bir kaydetme yapmazsak veriler program çalıştığı süre boyunca verileri RAM belleğe kaydediyor ve program kapandığı andan veriler siliniyor.Kullandığımız dataset yöntemi ile verilerimizi sadece XML’e değil istersek veritabanına kolayca aktarabiliyoruz.
CsharpFormXMLKullanimi

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;              //XML işlemerini yapabilmek için System.XML'i projemize dahil ediyoruz.

//http://www.programlamadersleri.com

namespace FormXmlKullanimi
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {        }

        private void buttonEkle_Click(object sender, EventArgs e)
        {//http://www.programlamadersleri.com
            //Ekle butonuna bastığımızda yapılacaklar.

            int n = dataGridView1.Rows.Add();
            // n adında integer bir değişken oluşturuyoruz bunu datagridview'e satır eklerken kullanıyoruz.
            dataGridView1.Rows[n].Cells[0].Value=textBoxSiraNo.Text;
            //Datagridview'in n satırı  0.sütununa textboxsiraNo'nun Text'ini ekliyoruz.
            dataGridView1.Rows[n].Cells[1].Value=textBoxDetay1.Text;
            //Datagridview'in n satırı  1.sütununa textboxDetay1'nin Text'ini ekliyoruz.
            dataGridView1.Rows[n].Cells[2].Value=textBoxDetay2.Text;
            //Datagridview'in n satırı  2.sütununa textboxDetay2'nin Text'ini ekliyoruz.
            //http://www.programlamadersleri.com
            textBoxSiraNo.Clear();
            //Verileri ekledikten sonra textbox'ı yeni veri girişi için temizliyoruz.
            textBoxDetay1.Clear();
            //Verileri ekledikten sonra textbox'ı yeni veri girişi için temizliyoruz.
            textBoxDetay2.Clear();
            //Verileri ekledikten sonra textbox'ı yeni veri girişi için temizliyoruz.

        }

        private void buttonXMLKaydet_Click(object sender, EventArgs e)
        {//http://www.programlamadersleri.com
            //XML Kaydet butonuna tıkladığımızda yapılacaklar.
            DataSet ds = new DataSet("FirmaProjeBilgileri");
            //Verileri dataset'e kaydetmek için "Firma Bilgileri" adından bir dataset oluşturuyoruz.
     
            DataTable dt = new DataTable("Isdetay");
            //Verileri Dataset içinde kaydetmek için "İş Detay"adında datatable oluşturuyoruz.
            //http://www.programlamadersleri.com
            dt.Columns.Add("SiraNo");//Datatable'ın Sütununa "Sıra No" ekliyoruz.
            dt.Columns.Add("Detay1");//Datatable'ın Sütununa "Detay1" ekliyoruz.
            dt.Columns.Add("Detay2");//Datatable'ın Sütununa "Detay2" ekliyoruz.
            ds.Tables.Add(dt);//Sütunları tablo içine ekliyoruz.


           foreach (DataGridViewRow r in dataGridView1.Rows)
           {//Oluşacak satır sayısıı bilmediğimizden dolayı foreach döngüsü içinde 
               //DataGridView'in satır sayısı kadar değer döndürüyoruz.
          DataRow row = ds.Tables["IsDetay"].NewRow();
          //Isdetay'da oluşturduğumuz tablo değerlerini eklemek için kullanıyoruz.
          //http://www.programlamadersleri.com

           row["SiraNo"] = r.Cells[0].Value.ToString();
               //Satırdaki SıraNo'nun değerini DetaGridView'den alıyoruz ve geçerli satırın 0.sütünunu alıyoruz.
           row["Detay1"] = r.Cells[1].Value.ToString();
           //Satırdaki Detay1 değerini DetaGridView'den alıyoruz ve geçerli satırın 1.sütünunu alıyoruz.
           row["Detay2"] = r.Cells[2].Value.ToString();
           //Satırdaki Detay2 değerini DetaGridView'den alıyoruz ve geçerli satırın 2.sütünunu alıyoruz.


           ds.Tables["IsDetay"].Rows.Add(row);
               //Dataset içindeki Isdetay tablosuna satırları ekliyoruz.
           }//http://www.programlamadersleri.com
           ds.WriteXml("Veri1.xml");
            //Verileri Dataset ile XML'e yazıyoruz.

        }

        private void buttonXMLAl_Click(object sender, EventArgs e)
        {//http://www.programlamadersleri.com
            string DosyaYolu = "Veri1" + ".xml";
            //XML dosyamızın var olup olmadığını kontrol için ilk önce bir değişkene dosya yolunu atıyoruz.
            if (System.IO.File.Exists(DosyaYolu))
            {//Eğer Dosyo yolunda belirtilen değer var ise aşağıdaki işlemler yapılıyor.
                DataSet ds = new DataSet();
                //Az önce oluşturduğumuz dataset private olduğundan burada yeniden oluşturuyoruz.
                ds.ReadXml("Veri1.xml");
                //Dataset'imiz ile daha önceden oluşturduğumuz "Veri.xml" dosyasını okutuyoruz.

                foreach (DataRow item in ds.Tables["IsDetay"].Rows)
                {//XML dosyasındaki veri sayısını bilmediğimizden "IsDetay" 
                    //tablosundaki satırlar kadar foreach döngüsüne sokuyoruz.
                    int n = dataGridView1.Rows.Add();
                    //Satır sayısını n değişkenine aktarıyoruz.
                    dataGridView1.Rows[n].Cells[0].Value = item[0].ToString();
                    //DataGridView'in n satırının 0. sütununu datasetten gelen 0.sütun ile eşitliyoruz.
                    dataGridView1.Rows[n].Cells[1].Value = item[1].ToString();
                    //DataGridView'in n satırının 1. sütununu datasetten gelen 1.sütun ile eşitliyoruz.
                    dataGridView1.Rows[n].Cells[2].Value = item[2].ToString();
                    //DataGridView'in n satırının 2. sütununu datasetten gelen 1.sütun ile eşitliyoruz.

                }//http://www.programlamadersleri.com
            }//if bitisi
            else {//Eğer XML dosyası yok ise 
                MessageBox.Show("Veri1.XML Bulunamadı.XML Dosyasını Oluşturun.");
                //MessageBox ile uyarı veriliyor.
            }


        }

        private void dataGridView1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            }

        private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
        {//http://www.programlamadersleri.com
            //DatagridView'in mauseClick Event'ini kullanarak seçili satıra tıklandığından 
            //ilgili textboxların içeriğinin dolmasını sağlıyoruz.
            textBoxSiraNo.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
            textBoxDetay1.Text = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
            textBoxDetay2.Text = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
        
        }

        private void buttonDuzenle_Click(object sender, EventArgs e)
        {//Düzenle butonuna bastığımızda datagridview'den değeri textboxlara çekiyoruz.
        
            dataGridView1.SelectedRows[0].Cells[0].Value = textBoxSiraNo.Text;
            dataGridView1.SelectedRows[0].Cells[1].Value = textBoxDetay1.Text;
            dataGridView1.SelectedRows[0].Cells[2].Value = textBoxDetay2.Text;
        }//http://www.programlamadersleri.com

        private void buttonSil_Click(object sender, EventArgs e)
        {//Sil butonuna tıklandığından DataGridView'de tıklamış olduğumuz satırı siliyoruz.
            dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
        }
    }
}

Kaydedilen XML dosyası ise şöyle;
CsharpFormXMLKullanimiXML

Çalışan Örneği İndirmek İçin Tıklayınız.

Bir Cevap Yazın