Osman KURT

Yazılım Uzmanı | MVC Eğitmeni

XML İçinden Şartlı Veri Çekme

Arkadaşlar artık web projelerinde xml kullanmama gibi bir şansımız kalmadı gibi birşey. Daha önceki yazılarımda xml veri oluşturmayı sizlere göstermiştim şimdi ise xml verilerinin içinden istediğimiz veriyi çekmeyi göstereceğim.

Kodlarımızı aşşağıda ki gibi kısa ve öz;

XDocument documnet = XDocument.Load(@"d:\osmankurt.xml");
            var query = from q in documnet.Element("Rehber").Elements()
                        where q.Attribute("TCNo").Value == "123456789"
                        select q;
            query.Remove();
            documnet.Save(@"d:\osmankurt.xml");

İlk olarak belirlediğimiz noktadaki xml dosyamızı load ediyoruz yani yüklüyoruz. Daha sonra içinde ki istediğimiz veriyi where  ile çekiyoruz. Mantık konusunda herhangi bir sıkıntı çekeceğinizi zannetmiyorum. Ve son aşama olarakta yeni xml verilerimizi kaydediyoruz. Tabi ister üzerine yazarsınız isterseniz yeni bir hedef oluşturabilir oaraya da yazdırabilirsiniz.

Yararlı olması dileğiyle görüşmek üzere

Osman KURT

Yazılım Geliştirici ve Grafiker 

ASP.Net da DataTable Kullanımı ve XML Okuma-Yazma İşlemleri

Arkadaşlar asp.net yazıyorsak eminim ki yaptığınız projelerde çoğu yerde datatable kullanmak zorundasınız, işin garip tarafı xml de kullanmak zorundasınız. Artık bütün veriler xml altında dışarı aktarılıyo biliyorsunuz. Size bu yazımda elimizde ki bir veritabanını kullanarak daha doğrusu bir tabloyu kullanarak datatable de veri okumayı okuduğumuz verileri xml e yazmayı ve yazdığımız xml den tekrar okumayı gösterecğim.

İsterseniz Kodlarımıza geçelim.

İlk olarak üst kütüphanemize;

using System.Data.SqlClient;

ekliyoruz.

Daha sonra artık nerede yazarsanız ben load olayında yazıyorum;

SqlConnection cnn = new SqlConnection(@"db yolu buraya");
SqlCommand cmd = new SqlCommand("tablo bilgileri buraya",cnn);
cnn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable("OsmanKURT");
dt.Load(dr);
DataList1.DataSource = dt;
DataList1.DataBind();
cnn.Close();

Bu kodun aynısı yazdığımız takdirde tabi alanlarını doldurarak veriyi okuyoruz.

Peki veriyi xml e yazma işlemi nasıl oluyo, oda yukarda ki işlemlere ek olarak yazacağımız;

dt.WriteXml(Server.MapPath("~/yaz.xml"));
dt.WriteXmlSchema(Server.MapPath("~/yaz.xsd")); 

kodlarımızla oluyor.

Son olarak ta xml den okumayı gösterecğim. Bunun için yeni bir sayfa açıyoruz ve load olayına;

DataTable dt=new DataTable("OsmanKURT");

dt.ReadXml(Server.MapPath("yaz.xml"));
dt.ReadXmlSchema(Server.MapPath("yaz.xsd"));

DataList1.DataSource=dt;
DataList1.DataBind(); 

Bu kodlarımızı da yazınca işlemimiz tamamlanmış bulunmaktadır.

Yararlı olması dleğiyle;

Osman KURT

Yazılım Geliştirici ve Grafiker 

ASP.Net le Döviz Kuru Çekmek

İnternet te o kadar çok bu tarz yazı varkı, hepsine baktım çok gereksiz ve kafa karıştırıcı kodlar kullanmışlar arkadaşlar.Bende bu yüzden kısa ve öz bir şekilde size anlatmaya karar verdim alt kısımda vereceğim kodları kulandığınız takdirde sorunsuz bir şekilde döviz kurlarını çekebilirsiniz. İlk olarak default.aspx kodlarımızı yazalım.

<table style="width: 100%; height: 75px">
    <tr>
        <td align="center">Dolar<br />
            <asp:Label ID="Label3" runat="server" Text=""></asp:Label>
            &nbsp;TL
        </td>
        <td align="center">Euro<br />
            <asp:Label ID="Label4" runat="server" Text=""></asp:Label>
            &nbsp;TL
        </td>
    </tr>
</table>

Şimdi ise default.aspx.cs sayfamıza geçelim ve merkez bankası xml dosyasını okuyalım.

XmlDocument xmlVerisi = new XmlDocument();
xmlVerisi.Load("http://www.tcmb.gov.tr/kurlar/today.xml");
decimal dolar = Convert.ToDecimal(xmlVerisi.SelectSingleNode(string.Format("Tarih_Date/Currency[@Kod='{0}']/ForexSelling", "USD")).InnerText.Replace('.', ','));
decimal Euro = Convert.ToDecimal(xmlVerisi.SelectSingleNode(string.Format("Tarih_Date/Currency[@Kod='{0}']/ForexSelling", "EUR")).InnerText.Replace('.', ','));
Label3.Text = dolar.ToString();
Label4.Text = Euro.ToString();

 

Bu kodlarımızı da yazdıktan sonra işlemimiz tamalanmıştır. Artık sitenizde döviz kurlarını barındırıyorsunuz.

Görüşmwk Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker

 

ASP.Net ve XML'e Yazma

Konumuz başlıkta yazdığı gibi Asp.Net ile Xml yazdırmak. Elbet bir kaçınız yada çoğunuz asp.net kullanmaktadır ve bu yüzden bu konu işe yarar diye düşündüm. Hele birde netteki örneklerde benim gibi sorun yaşıyorsanız çok işinize yarayabilir.
İlk olaraktan kullanacağımız kütüphaneleri ekliyoruz.

using System.Xml;
using System.Text;

Ve sonrasında depo database imizde bulunan resim tablomuzdan gerekli bilgilerimizi çekip dataXML.xml isimli xml'imize bunları yazdırıyoruz.


OleDbConnection baglan = new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=" + Server.MapPath("~/App_Data/depo.mdb"));
OleDbCommand komutt = new OleDbCommand("select * from resim", baglan);
baglan.Open();
OleDbDataReader dr = komutt.ExecuteReader();
XmlTextWriter writer = new XmlTextWriter(Server.MapPath("~/dataXML.xml"), Encoding.UTF8);
writer.WriteStartDocument();
writer.WriteStartElement("galerie");
while (dr.Read())
{
writer.WriteStartElement("img thumbEvents=\"true\" thumbnail=\"" + dr["thumbnail"].ToString() + "\" large=\"" + dr["large"].ToString() + "\" description=\"" + dr["description"].ToString() + "\"");
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
baglan.Close();


Hepsi bu kadarcık.
Kodları okuyunca zaten neyin ne olduğuda çok açık, herhangi bir sorunu da konu altından benimle paylaşırsanız yardımcı olurum.
Neyse bu işlemlerden sonra dataXML.xml'in son halini görmekte hakkınız
Bende çıkan sonuç şu şekilde;


<?xml version="1.0" encoding="utf-8"?>
<galerie>
<img thumbEvents="true" thumbnail="pictures/thumbnails/21IWuqrpiG201.jpg" large="pictures/large/21IWuqrpiG201.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2On1WnAzrE702.jpg" large="pictures/large/2On1WnAzrE702.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2aYC2LIeZnP03.jpg" large="pictures/large/2aYC2LIeZnP03.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2RIeMrGuSTx04.jpg" large="pictures/large/2RIeMrGuSTx04.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2VUXUnMgIBn05.jpg" large="pictures/large/2VUXUnMgIBn05.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2Sus3UmfNg606.jpg" large="pictures/large/2Sus3UmfNg606.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2l6ZE7VOXNQ07.jpg" large="pictures/large/2l6ZE7VOXNQ07.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2bPtHCu5syf08.jpg" large="pictures/large/2bPtHCu5syf08.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2PGSJwPgaRs09.jpg" large="pictures/large/2PGSJwPgaRs09.jpg" description="Tanım Denemesi" />
<img thumbEvents="true" thumbnail="pictures/thumbnails/2siQCksaJFT10.jpg" large="pictures/large/2siQCksaJFT10.jpg" description="Tanım Denemesi" />
</galerie>

Buraya kadar eksiksiz bir şekilde yazarsanız benimle aynı sonucu alacağınızı düşünüyorum.

Görüşmek Üzere;

Osman KURT