folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# Da XML Ler Arası Veri Alişverisi



C# Da XML Ler Arası Veri Alişverisi

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    AlpereN
    AlpereN's avatar
    Kayıt Tarihi: 10/Eylül/2005
    Erkek

    merhaba

    ikitane xml arası bilgi alıs verisi nasıl yapabilirim

     

     

    bir dukkanın tum urun bilgilerini tutan xml dosyasından sadece satılanların veya secilenlerin ayrı bir xml dosyasına aktarılması ve satılan urunlerın toplam fiyatını hasaplatırmam lazım ...

     

     bu konuda kaynak önerilicek  veya yardımcı olabilcek varmi ?

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    CmdExE
    CmdExE's avatar
    Kayıt Tarihi: 03/Aralık/2009
    Erkek

    //satırları aktarma

    DataSet ds = new DataSet();
            ds.ReadXml(yol);
            DataRow[] rows = ds.Tables[0].Select("durum = 0");
            XmlTextWriter xr = new XmlTextWriter(yeniyol);
            xr.WriteStartDocument();
            xr.WriteStartElement("satilanlar");
            for (int i = 0; i < rows.Length; i++)
            {
                xr.WriteStartElement("url");
                for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
                {
                    xr.WriteElementString(ds.Tables[0].Columns[j].ColumnName,rows[i][j].ToString());
                } 
                xr.WriteEndElement();
            } 
            xr.WriteEndElement();
            xr.WriteEndDocument();
            xr.Flush();
            xr.Close();

    //fiyatları toplama

    protected double Toplam(
        {
           
            DataSet ds = new DataSet();
            ds.ReadXml(yol);
            double toplam = 0;
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                toplam += Convert.ToDouble(dr["fiyat"]);
            }
            return toplam;
        }

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    AlpereN
    AlpereN's avatar
    Kayıt Tarihi: 10/Eylül/2005
    Erkek

    bu sorunu cozdum belki arkadaslara yardımcı olur dıye kendı cozumumu yazıyorum  linq kulandım ...

     

    ilk basta listview ekledıgımızı olustursun dıye updatelistview diye bir fonksiyon olusturdum xml mizin adı addbook.xml

      public void updatelistview1()
            {

     XDocument xmlDoc = XDocument.Load("addbook.xml");
                var bks = from bk in xmlDoc.Descendants("book")
                          select new
                          {
                              Id = bk.Element("id").Value,
                              Name = bk.Element("name").Value,
                              Yayin = bk.Element("yayin").Value,
                              Autor = bk.Element("autor").Value,
                              Sell = bk.Element("sellp").Value,
                              adet = bk.Element("adet").Value,

                          };
                ListViewItem item;
                this.listView1.BeginUpdate();
                this.listView1.Items.Clear();
                foreach (var items in bks)
                {
                    item = this.listView1.Items.Add(items.Id);
                    item.SubItems.Add(items.Name);
                    item.SubItems.Add(items.Autor);
                    item.SubItems.Add(items.Yayin);
                    item.SubItems.Add(items.Sell);
                    item.SubItems.Add(items.adet);
                }
                this.listView1.EndUpdate();
            }

    }

     

    simdi xml e eklemek ıcın ve her ekledıgım listview de gozukmesı ıcın

     

     

     private void addbtn_Click(object sender, EventArgs e)
            {


                XDocument xmlDoc = XDocument.Load("addbook.xml");
                xmlDoc.Root.Add(
                    new XElement("book",
                        new XElement("id", this.textBox2.Text),
                        new XElement("name", this.textBox3.Text),
                        new XElement("yayin", this.textBox4.Text),
                        new XElement("autor", this.textBox5.Text),
                        new XElement("sellp", this.textBox6.Text),
                        new XElement("comep", this.textBox7.Text),
                        new XElement("adet", this.textBox8.Text)
                                 ));
                xmlDoc.Save("addbook.xml");
                updatelistview2();


                textBox2.Text = "";
                textBox3.Text = "";
                textBox4.Text = "";
                textBox5.Text = "";
                textBox6.Text = "";
                textBox7.Text = "";
                textBox8.Text = "";

            }

     

    xml de arama yapmak ıcın ise

     

      string namme = textBox1.Text.ToString();

          

                      XDocument xmlDoc = XDocument.Load("addbook.xml");
                      XElement element = xmlDoc.Root.Elements("book").Where(r => (string)r.Element("name") == namme).FirstOrDefault();

                      var bks = from bk in xmlDoc.Descendants("book")
                                where bk.Element("name").Value == namme
                                select new
                                {
                                    Id = bk.Element("id").Value,
                                    Name = bk.Element("name").Value,
                                    Yayin = bk.Element("yayin").Value,
                                    Autor = bk.Element("autor").Value,
                                    Sell = bk.Element("sellp").Value,
                                    Come = bk.Element("comep").Value,
                                    adet = bk.Element("adet").Value,

                                };

                      ListViewItem item;
                      this.listView1.BeginUpdate();
                      this.listView1.Items.Clear();
                      try
                      {
                          foreach (var eleman in bks)
                          {
                              item = this.listView1.Items.Add(element.Element("id").Value);
                              item.SubItems.Add(element.Element("name").Value);
                              item.SubItems.Add(element.Element("yayin").Value);
                              item.SubItems.Add(element.Element("autor").Value);
                              item.SubItems.Add(element.Element("sellp").Value);
                              item.SubItems.Add(element.Element("comep").Value);
                              item.SubItems.Add(element.Element("adet").Value);
                              adt = Int32.Parse(element.Element("adet").Value);
                              gfyt = Int32.Parse(element.Element("comep").Value);
                          }
                      }
                      catch
                      {
                          MessageBox.Show("this book not has ");
                      }
                      this.listView1.EndUpdate();
              

Toplam Hit: 3170 Toplam Mesaj: 3