9 Ocak 2019 Çarşamba

XML veritabanı oluşturma, ekleme, güncelleme




    
    
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Linq;
using System.Net.Mail;
using System.Net;
using System.Net.Security;
using System.Net.Sockets;

namespace SiparisFormu
{
    public partial class Urunler : Form
    {
        int guncellenecekSatir = -1;
        string xmldocument_dosya = "ürün\\ürün.xml";
        XmlDocument xmldocument = null;
        XmlNode guncellenecekNod = null;

        public Urunler()
        {
            InitializeComponent();
        }

        private void Urunler_Load(object sender, EventArgs e)
        {
            listView1.Items.Clear();
            this.listView1.View = System.Windows.Forms.View.Details;
            if (!File.Exists("ürün\\ürün.xml"))
            {
                XmlTextWriter xmlolustur = new XmlTextWriter("ürün\\ürün.xml", null);

                xmlolustur.WriteStartDocument();

                xmlolustur.WriteComment("Oluşturulan xml hakkında bilgi");

                xmlolustur.WriteStartElement("urunler");

                xmlolustur.WriteEndDocument();

                xmlolustur.Close();
            }

            xmldocument = new XmlDocument();
            xmldocument.Load("ürün\\ürün.xml");

            listele();
        }

        private void listele()
        {
            if (File.Exists("ürün\\ürün.xml"))
            {
                listView1.Items.Clear();

                XmlElement root = xmldocument.DocumentElement;
                XmlNodeList kayitlar = root.SelectNodes("/urunler/ürün");

                foreach (XmlNode secilen in kayitlar)
                {
                    ListViewItem lv = new ListViewItem();
                    lv.Text = secilen["id"].InnerText;

                    lv.SubItems.Add(secilen["adi"].InnerText);
                    lv.SubItems.Add(secilen["satis"].InnerText);
                    lv.SubItems.Add(secilen["adet"].InnerText);
                    lv.SubItems.Add(secilen["kalan"].InnerText);
                    lv.SubItems.Add(secilen["grup"].InnerText);

                    listView1.Items.Add(lv);
                }
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < listView1.Items.Count; i++)
            {
                listView1.Items[i].SubItems[4].Text = textBoxKalan.Text;
            }
        }

        private void urunekle()
        {
            bool varmi = false;
            int enBuyukid;

            XmlElement root = xmldocument.DocumentElement;
            XmlNodeList kayitlar = root.SelectNodes("/urunler/ürün");

            if (kayitlar.Count > 0)
            {
                varmi = true;
            }

            if (varmi == true)
            {
                int[] kayittakiSayilar = new int[kayitlar.Count];

                int i = 0;
                foreach (XmlNode secilen in kayitlar)
                {
                    kayittakiSayilar[i] = Convert.ToInt32(secilen["id"].InnerText);
                    i = i + 1;
                }
                Array.Sort(kayittakiSayilar);
                enBuyukid = kayittakiSayilar[kayittakiSayilar.Length - 1];
                enBuyukid = enBuyukid + 1;
            }
            else
            {
                enBuyukid = 0;
            }
            if (File.Exists("ürün\\ürün.xml"))
            {
                XmlElement UserElement = xmldocument.CreateElement("ürün");

                XmlElement id = xmldocument.CreateElement("id");
                id.InnerText = enBuyukid.ToString();
                UserElement.AppendChild(id);

                XmlElement adi = xmldocument.CreateElement("adi");
                adi.InnerText = textBoxAd.Text;
                UserElement.AppendChild(adi);

                XmlElement satis = xmldocument.CreateElement("satis");
                satis.InnerText = textBoxSatis.Text;
                UserElement.AppendChild(satis);

                XmlElement adet = xmldocument.CreateElement("adet");
                adet.InnerText = textBoxAdet.Text;
                UserElement.AppendChild(adet);

                XmlElement kalan = xmldocument.CreateElement("kalan");
                kalan.InnerText = textBoxKalan.Text;
                UserElement.AppendChild(kalan);

                XmlElement Gurup = xmldocument.CreateElement("grup");
                Gurup.InnerText = textBoxGrupNo.Text;
                UserElement.AppendChild(Gurup);

                xmldocument.DocumentElement.AppendChild(UserElement);

                XmlTextWriter xmleekle = new XmlTextWriter("ürün\\ürün.xml", null);
                xmleekle.Formatting = Formatting.Indented;
                xmldocument.WriteContentTo(xmleekle);
                xmleekle.Close();

                textBoxGrupNo.Text = "";
                textBoxAd.Text = "";
                textBoxSatis.Text = "";
                textBoxAdet.Text = "";
                textBoxKalan.Text = "";
            }
            listele();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            urunekle();
        }

        private void btnGrup1Sec_Click(object sender, EventArgs e)
        {
            //Listview içinde grup 1 olan elemanları listele
            grupSec(1);
        }

        private void btnGrup2Sec_Click(object sender, EventArgs e)
        {
            //Listview içinde grup 2 olan elemanları listele
            grupSec(2);
        }

        private void btnGrup3Sec_Click(object sender, EventArgs e)
        {
            //Listview içinde grup 3 olan elemanları listele
            grupSec(3);
        }

        private void grupSec(int secilenGrup)
        {
            listView1.Items.Clear();

            XmlElement root = xmldocument.DocumentElement;
            XmlNodeList kayitlar = root.SelectNodes("/urunler/ürün");

            foreach (XmlNode secilen in kayitlar)
            {
                if (secilen["grup"].InnerText == secilenGrup.ToString())
                {
                    ListViewItem lv = new ListViewItem();
                    lv.Text = secilen["id"].InnerText;
                    lv.SubItems.Add(secilen["adi"].InnerText);
                    lv.SubItems.Add(secilen["satis"].InnerText);
                    lv.SubItems.Add(secilen["adet"].InnerText);
                    lv.SubItems.Add(secilen["kalan"].InnerText);
                    lv.SubItems.Add(secilen["grup"].InnerText);

                    listView1.Items.Add(lv);
                }
            }
        }

        //seçilen elemanın Kalan textbox ına girilen değere göre güncelle.
        private void btnSeciliElamanGuncelle_Click(object sender, EventArgs e)
        {
            if (guncellenecekSatir < 0) return; // Eğer bir satır seçilmediyse hiçbir işlem yapma

            guncellenecekNod = xmldocument.DocumentElement.ChildNodes[guncellenecekSatir];

            guncellenecekNod.ChildNodes[4].InnerText = textBoxKalan.Text;

            xmldocument.Save(xmldocument_dosya);

            xmldocument.Load(xmldocument_dosya);

            listele();
        }

        private void btnSecilenGrubunHepsiniGuncelle_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < listView1.Items.Count; i++)
            {
                guncellenecekSatir = int.Parse(listView1.Items[i].SubItems[0].Text);

                //güncellenecek nodu seç.
                guncellenecekNod = xmldocument.DocumentElement.ChildNodes[guncellenecekSatir];

                //güncellenecek nodun kalan elemanını textboxdaki yazana değere göre güncelle
                guncellenecekNod.ChildNodes[4].InnerText = textBoxKalan.Text;

                xmldocument.Save(xmldocument_dosya);

                xmldocument.Load(xmldocument_dosya);
            }

            listele();
        }

        private void listView1_DoubleClick(object sender, EventArgs e)
        {
            if (listView1.SelectedIndices[0] < 0) return;

            //seçilen elamanın id si saklıyorum. daha sonra güncelle butonunda bu değer kullanılacak
            guncellenecekSatir = int.Parse(listView1.SelectedItems[0].SubItems[0].Text);

            textBoxAd.Text = listView1.SelectedItems[0].SubItems[1].Text;
            textBoxSatis.Text = listView1.SelectedItems[0].SubItems[2].Text;
            textBoxAdet.Text = listView1.SelectedItems[0].SubItems[3].Text;
            textBoxKalan.Text = listView1.SelectedItems[0].SubItems[4].Text;
            textBoxGrupNo.Text = listView1.SelectedItems[0].SubItems[5].Text;
        }

    }
}