Bolu Beyi tarafından yazıldı Haziran - 19 - 2014 35 Yorum

Proje oluştururken, bazen verilerin XML‘e dökülmüş hali gerekebiliyor. Bu sebeple sizlere veritabanından XML’e veri çekme konusundan bahsedeceğim. Ben MySql kullandım fakat başka bir veri tabanı için de durum pek değişmeyecektir. Örnek bir uygulama ile bu konuyu anlatacağım. Öncelikle veri tabanındaki verilerden kısaca bahsedeyim. Veri tabanımızda “TblSehirler” adında, şehir isimlerinin bulunduğu bir tablomuz mevcut. Bunun yanı sıra “TblProjeler” adında, şehirlerde oluşturulan AVM, apartman, hastane ve okul projeleri bulunmakta. Bizim amacımız ise bu verileri, her bir şehirde oluşturulan proje sayılarını, proje türlerine göre bir araya getirip XML dökümanı oluşturmak.

XML MySql için aşağıdaki kütüphaneleri ekliyoruz:

using MySql.Data.MySqlClient;
using System.Xml;

 

//MySql bağlantı nesnemizi tanımlıyoruz.
MySqlConnection baglanti = new MySqlConnection(“Server= localhost; Database=DenemeDB; Uid=root; Pwd=12345”);
baglanti.Open();//Veri tabanındaki şehirler tablomuzdan şehir adlarını çekerek bir diziye atıyoruz.
MySqlCommand SehirlerCmd= new MySqlCommand(“select SehirAdi from DenemeDB.TblSehirler”, baglanti);
var Sehirler = new List<string>();
MySqlDataReader SehirlerDr= SehirlerCmd.ExecuteReader();
while (SehirlerDr.Read())
{
Sehirler.Add(SehirlerDr[“SehirAdi”].ToString());
}

SehirlerDr.Close();
string[] sehirler= Sehirler.ToArray();
XmlTextWriter writer = new XmlTextWriter( “C:\\Test.xml”, System.Text.Encoding.UTF8);
writer.WriteStartDocument(true);
writer.Formatting = Formatting.Indented;
writer.Indentation = 2;
writer.WriteStartElement(“VeriSeti”);//Her bir şehir için proje türlerine göre proje sayılarını veri tabanından çekiyoruz.
for (int i = 0; i < sehirler.Length; i++)
{
MySqlCommand ToplamAVMCmd= new MySqlCommand(“select count(projeID) from DenemeDB.TblProjeler p, DenemeDB.sehirler s where p.ProjeTuru = “AVM” and p.sehirID=s.sehirID and s.SehirAdi=” + “‘” + sehirler[i] + “‘”, baglanti);
MySqlCommand ToplamApartmanCmd= new MySqlCommand(“select count(projeID) from DenemeDB.TblProjeler p, DenemeDB.sehirler s where p.ProjeTuru = “Apartman” and p.sehirID=s.sehirID and s.SehirAdi=” + “‘” + sehirler[i] + “‘”, baglanti);
MySqlCommand ToplamHastaneCmd= new MySqlCommand(“select count(projeID) from DenemeDB.TblProjeler p, DenemeDB.sehirler s where p.ProjeTuru = “Hastane” and p.sehirID=s.sehirID and s.SehirAdi=” + “‘” + sehirler[i] + “‘”, baglanti);
MySqlCommand ToplamOkulCmd= new MySqlCommand(“select count(projeID) from DenemeDB.TblProjeler p, DenemeDB.sehirler s where p.ProjeTuru = “Okul” and p.sehirID=s.sehirID and s.SehirAdi=” + “‘” + sehirler[i] + “‘”, baglanti);
MySqlDataReader ToplamAVMDr = TopalmAVMCmd.ExecuteReader();
while (ToplamAVMDr.Read())
string ToplamAVM = ToplamAVMDr[0].ToString();
ToplamAVMDr.Close();
MySqlDataReader ToplamApartmanDr = TopalmApartmanCmd.ExecuteReader();
while (ToplamApartmanDr.Read())
string ToplamApartman = ToplamApartmanDr[0].ToString();
ToplamApartmanDr.Close();
MySqlDataReader ToplamHastaneDr = TopalmHastaneCmd.ExecuteReader();
while (ToplamHastaneDr.Read())
string ToplamHastane = ToplamHastaneDr[0].ToString();
ToplamHastaneDr.Close();MySqlDataReader ToplamOkulDr = TopalmOkulCmd.ExecuteReader();
while (ToplamOkulDr.Read())
string ToplamOkul = ToplamOkulDr[0].ToString();
ToplamOkulDr.Close();//Veri tabanından çektiğimiz verileri createNode adlı fonksiyonumuza gönderiyrouz.
createNode(sehirler[i], ToplamAVM, ToplamApartman, ToplamHastane, ToplamOkul, writer);
}//Writer nesnemizi kapatıyoruz.
writer.WriteEndDocument();
writer.Close();
Application.Exit();

 

private void createNode(string sehirAdi, string toplamAVM, string toplamApartman, string toplamHastane, string toplamOkul, XmlTextWriter myWriter)
{
//XML tablomuz için node oluşturuyoruz.
myWriter.WriteStartElement(“Tablo”);
myWriter.WriteStartElement(“Şehir Adı”);
myWriter.WriteString(sehirAdi);
myWriter.WriteEndElement();myWriter.WriteStartElement(“AVM Sayısı”);
myWriter.WriteString(toplamAVM);
myWriter.WriteEndElement();myWriter.WriteStartElement(“Apartman Sayısı”);
myWriter.WriteString(toplamApartman);
myWriter.WriteEndElement();myWriter.WriteStartElement(“Hastane Sayısı”);
myWriter.WriteString(toplamHastane);
myWriter.WriteEndElement();myWriter.WriteStartElement(“Okul Sayısı”);
myWriter.WriteString(toplamOkul);
myWriter.WriteEndElement();myWriter.WriteEndElement();
}

Bugüne kadar 35 yorum yapıldı

  1. pvp serverler dedi ki:

    bu yöntemle sitemap ve feed besleme sayfaları rahatlıkla oluşturabiliriz. çok teşekkürler hocam.

  2. kd haber dedi ki:

    tam aradığım sistm

  3. marmaris klima dedi ki:

    çok güzel bir uygulama çok iyi düşünülmüş teşekkürler.

  4. Şeker Kadın dedi ki:

    Tam aradığım sistem, çok işime yarayacak, paylaşım için teşekkürler.

  5. Verdiğiniz bilgilerle MySQL veri tabanından XML’e veri çekme işlemini kolaylıkla yapabiliyorum. Ayrıca bir sorum olacak: çok büyüt boyutlu (500 mb üstü) sql dosyalarını indirirken sorun yaşanıyor. Tam olarak yedek alabilmek için bir tavsiyeniz var mıdır? Teşekkürler.

  6. oyungemisi dedi ki:

    Bu site çok işime yaradı varol bolubeyi.net 🙂

  7. mistik dedi ki:

    teşekkürler, tamda bunu arıyordum. çok işime yaradı.

  8. web tasarım dedi ki:

    sitemin sürekli yedeğini alıyorum hem xml hemde sql yararlı oldu teşekkürler.

  9. Dondurma dedi ki:

    Gerçekten çok yararlı bir paylaşım olmuş. Arşivime aldım bu bilgileri. Teşekkürler 🙂

  10. türkçe dedi ki:

    anlatımınızı kaydettim ilerde mutlaka lazım olur sorun çıkıyo genelde 🙂

  11. Sinema dedi ki:

    Bilgiler arşivime alınmıştır yararlı ve faydalı bir konu teşekkürler bolubeyi.

  12. bilezikci dedi ki:

    Zor bir iş bakalım öğrenmeye çalışacağız.

  13. Blabla dedi ki:

    Merhaba ben xml ve sql’e yeni başladım. Pek bir bilgim yok mysql yerine sql server kullansam neler değişir?

    • Bolu Beyi dedi ki:

      Merhaba, sadece mysql bağlantı nesneleri yerine mssql bağlantı nesneleri kullanmanız yeterlidir. Blogumda arama yaparsanız mssql bağlantı kurmayı bulabilirsiniz.

  14. Online dedi ki:

    Güzel bir anlatım olmuş Bilgiler tarafımca arşive alınmıştır. teşekkürler bolubeyi.

  15. Teknoloji dedi ki:

    Şuan üzerinde çalıştığım proje için aradığım bir konu idi çok teşekkür ederim hemen deneyeceğim bakalım olacakmı.

  16. run dedi ki:

    Hocam peki boyutu büyük yani gb değerlernde olan sql tablolarını nasıl import etmeliyiz ?

  17. demirdöküm dedi ki:

    Uzun zamandır int le ilgileniyorum şu olayı hala daha çözemedim. Birde burdaki makaleyi incelicem uzun uzun bakalım kavrayabilicekmiyim..

  18. servis dedi ki:

    Şuan üzerinde çalıştığım proje için aradığım bir konu idi çok teşekkür ederim hemen deneyeceğim bakalım olacakmı.

  19. Kat dedi ki:

    yeni projemde sizin bahsettiğiniz kodları kullanacağım tşkler

  20. meraklikadin dedi ki:

    peki exel formatından .mdb formatına nasıl çeviririz?

  21. SEO Kriter dedi ki:

    XML veri çekme işlemlerinde özellikle araştırmalar yapıyordum. Yukarıdaki çalışmaları uyguladım ve gerçekten başarı elde ettim, teşekkür ediyorum.

  22. altın dedi ki:

    xml dönüştüğünde flash sitelerde işe yarıyor mükemmel bence

  23. teknoloji dedi ki:

    teşekkürler hocam, bizim için faydalı bir bilgi olmuş, başarılarının devamını dilerim.

  24. Teknoloji dedi ki:

    Teşekkürler aradığım şeyi buldum sizin sayenizde projem için çok acil gerekiyordu. Emeğinize sağlık

  25. Oyunlar dedi ki:

    Pratik bir yöntem ile olayı özetlemişsiniz teşekkürler.

  26. Film dedi ki:

    BoluBeyi eline sağlık şahsen aradığım bilgilerden biriydi.

  27. dizi dedi ki:

    Daha önceden başımı fazlasıyla ağrıtan bir sistemdi, paylaşım için teşekkürler.

  28. Whitecr dedi ki:

    Çok yararlı bilgiler, derleyen ve emeğe geçen herkese teşekkürler. Yeni paylaşımları takip ediyor ve bekliyoruz.

  29. Doktor dedi ki:

    merhaba çok yararlı bir makale olmuş. Benim elimde özel yazılım bir site var kendi sql tabanın da 5000 e yakın kayıt var siteyi wordpress e taşımak istiyorum sizce bu yardımcı olur mu?

    KadinDogumDoktor.com

  30. Ucuz dedi ki:

    TEbrikler, içinde faydalı bilgiler var. Sql ve xml e alakası olanlar için iyi bir çalışma olmuş

  31. berkay dedi ki:

    yeni projem için bunu arıyordum ve sonunda buldum, bilgi için teşekkürler

  32. Çilingir dedi ki:

    Yine bolu beyine yakışır bir paylaşım olmuş teşekkürler

  33. Body dedi ki:

    Teşekkür ederim bolu beyi güzel işe yarar makale

  34. Ayça Şahin dedi ki:

    Sürekli takipçinizim paylaşımlarınız son derecede önemli teşekkürler


Time limit is exhausted. Please reload CAPTCHA.