Wednesday, January 27, 2016

C# Dilinde Datagridview ve XML Arasında Aktarımlar


C# Dilinde Datagridview ve XML Arasında Aktarımlar 

Çok uzun zamandır ara verdiğim kod paylaşımına yeniden başlamak istiyorum. Bu hem benim için, hem de yazılımı yeni öğrenenen arkadaşlar için faydalı olur diye düşünüyorum.

Datagridview bileşeninden XML dosyaya aktarım.

How to write from datagridview to xml in c#


        private void button4_Click(object sender, EventArgs e)
        {
            WriteAksiyonListesiToFile(getAppPath() + @"\AksiyonListesi.xml");          
        }

        bool WriteAksiyonListesiToFile(string sFileName)
        {
            try
            {
               // string fileName = getAppPath() + @"\AksiyonListesi.xml";
                DataTable dt = (DataTable)(dataGridViewSteps.DataSource);
                DataTable datat = new DataTable("Adimlar");
                datat = dt.Copy();
                DataSet ds = new DataSet("AksiyonListesi");
                ds.Tables.Add(datat);
                XmlTextWriter xmlWriterAksiyonListesi = new XmlTextWriter(sFileName, Encoding.UTF8);
                xmlWriterAksiyonListesi.Formatting = Formatting.Indented;
                xmlWriterAksiyonListesi.Indentation = 3;
                ds.WriteXml(xmlWriterAksiyonListesi);
                xmlWriterAksiyonListesi.Close();

                labelMessage.Text = "AksiyonListesi.xml was saved.";

                return true;
            }
            catch
            {
                labelMessage.Text = "AksiyonListesi.xml could not be created.";
                return false;
            }
        }



XML dosyadan Datagridview bileşenine aktarım.

How to read from xml to datagridview component in c#


        private void button3_Click(object sender, EventArgs e)
        {
            ReadAksiyonListesiFromFile();           
        }

        bool ReadAksiyonListesiFromFile()
        {
            try
            {
                string fileName =getAppPath()+ @"\AksiyonListesi.xml";
                DataTable dt = new DataTable("Adimlar");
                dataGridViewSteps.DataSource = dt;
                System.Data.DataColumn tColumn = null;
                tColumn = new System.Data.DataColumn("ProductName", System.Type.GetType("System.String"));
                dt.Columns.Add(tColumn);
                tColumn = new System.Data.DataColumn("Server", System.Type.GetType("System.String"));
                dt.Columns.Add(tColumn);
                tColumn = new System.Data.DataColumn("Source", System.Type.GetType("System.String"));
                dt.Columns.Add(tColumn);
                tColumn = new System.Data.DataColumn("Action", System.Type.GetType("System.String"));
                dt.Columns.Add(tColumn);
                tColumn = new System.Data.DataColumn("Target", System.Type.GetType("System.String"));
                dt.Columns.Add(tColumn);
                tColumn = new System.Data.DataColumn("Included", System.Type.GetType("System.Boolean"));
                dt.Columns.Add(tColumn);

                if (File.Exists(fileName))
                {                  
                    XmlReader xmlFile;
                    xmlFile = XmlReader.Create(fileName, new XmlReaderSettings());
                    DataSet ds = new DataSet("AksiyonListesi");
                    ds.ReadXml(xmlFile);
                    xmlFile.Close();
                    dataGridViewSteps.DataSource = ds.Tables[0];
                    labelMessage.Text = "AksiyonListesi.xml was reloaded."; 
                }
                else
                {
                    DataSet ds = new DataSet("AksiyonListesi");
                    ds.Tables.Add(dt);
                    XmlTextWriter xmlWriterAksiyonListesi = new XmlTextWriter(fileName, Encoding.UTF8);
                    xmlWriterAksiyonListesi.Formatting = Formatting.Indented;
                    xmlWriterAksiyonListesi.Indentation = 3;
                    ds.WriteXml(xmlWriterAksiyonListesi);
                    xmlWriterAksiyonListesi.Close();
                    labelMessage.Text = "AksiyonListesi.xml was created.";                   
                }
                return true;
            }
            catch(Exception ex)
            {
                labelMessage.Text = "Aksiyon Listesi is empity.";
                return false;
            }
        }