Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Tolga Güler
Tolga Güler
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
6 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  XML / Web Serv. Tolga Güler
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : XML / Web Serv.
Yayınlanma Tarihi : 26.9.2003
Okunma Sayısı : 94649
Yorum Sayısı : 6     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 21.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 21.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 21.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 21.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
C# ile T.C.M.B Döviz Kurlarının Elde Edilmesi
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Merhaba; Bu yazımda size internetteki bir Xml dokümanını bir DataTable' a nasıl yükleyeceğinizi ve yüklediğiniz bu datayı DataGrid te nasıl görüntüleyebileceğinizi açıklamaya çalışacağım.

Sonunda T.C.M.B kur bilgilerini bir xml dokümanda yayımlamaya başladı. Daha önce bu konu ile uğraşanlar bilir; kur bilgileri today.html diye bir html dokümandan ilkel bir metot ile alınıyordu tabi sizin işiniz de web masterın insafına bağlıydı. Neyse ki o günler geride kaldı. Artık today.xml var. Henüz deneme aşamasında ve -bence- bazı mantık hataları olmasına karşın xml standardına geçilmiş olması gayet güzel olmuş. Sayfanın adresi: http://www.tcmb.gov.tr/kurlar/today.xml Önerim bu dokümanı önce iyice incelemeniz yönündedir.

Hemen uygulamaya geçelim.

Yeni bir windows uygulaması açın ve formunuza bir datagrid ekleyin. Kodunuza da System.Xml namespace ini eklemeyi unutmayın.



private void Form1_Load(object sender, System.EventArgs e)

{

dataGrid1.DataSource=source();

}

public DataTable source ()

{

DataTable dt = new DataTable();
// DataTable nesnemizi yaratıyoruz
DataRow dr;
// DataTable ın satırlarını tanımlıyoruz.
dt.Columns.Add(new DataColumn("Adı", typeof(string)));
dt.Columns.Add(new DataColumn("Kod", typeof(string)));
dt.Columns.Add(new DataColumn("Döviz alış", typeof(string)));
dt.Columns.Add(new DataColumn("Döviz satış", typeof(string)));
dt.Columns.Add(new DataColumn("Efektif alış", typeof(string)));
dt.Columns.Add(new DataColumn("Efektif Satış", typeof(string)));
// DataTableımıza 6 sütün ekliyoruz ve değişken tiplerini tanımlıyoruz.

XmlTextReader rdr = new XmlTextReader("http://www.tcmb.gov.tr/kurlar/today.xml");
// XmlTextReader nesnesini yaratıyoruz ve parametre olarak xml dokümanın urlsini veriyoruz
// XmlTextReader urlsi belirtilen xml dokümanlarına hızlı ve forward-only giriş imkanı sağlar.

XmlDocument myxml = new XmlDocument();
// XmlDocument nesnesini yaratıyoruz.
myxml.Load(rdr);
// Load metodu ile xml yüklüyoruz

XmlNode tarih = myxml.SelectSingleNode("/Tarih_Date/@Tarih");
XmlNodeList mylist = myxml.SelectNodes("/Tarih_Date/Currency");
XmlNodeList adi = myxml.SelectNodes("/Tarih_Date/Currency/Isim");
XmlNodeList kod = myxml.SelectNodes("/Tarih_Date/Currency/@Kod");
XmlNodeList doviz_alis = myxml.SelectNodes("/Tarih_Date/Currency/ForexBuying");
XmlNodeList doviz_satis = myxml.SelectNodes("/Tarih_Date/Currency/ForexSelling");
XmlNodeList efektif_alis = myxml.SelectNodes("/Tarih_Date/Currency/BanknoteBuying");
XmlNodeList efektif_satis = myxml.SelectNodes("/Tarih_Date/Currency/BanknoteSelling");

// XmlNodeList cinsinden her bir nodu, SelectSingleNode metoduna nodların xpathini parametre olarak
// göndererek tanımlıyoruz.

dataGrid1.CaptionText=tarih.InnerText.ToString()+" tarihli merkez bankası kur bilgileri";

// datagridimin captionu ayarlıyoruz.

int x = 19;

/*  Burada xmlde bahsettiğim - bence-  mantık hatasından dolayı x gibi bir değişken tanımladım.
bu x =19  DataTable a sadece 19 satır eklenmesini sağlıyor. çünkü xml dökümanında 19. node dan sonra
güncel kur bilgileri değil Euro dönüşüm kurları var ve bu node dan sonra yapı ilk 18 node ile tutmuyor
Bence ayrı bir xml dökümanda tutulması gerekirdi.
*/

for (int i = 0 ; i < x; i++)

{

dr = dt.NewRow();
dr[0] = adi.Item(i).InnerText.ToString(); // i. adi nodunun içeriği
// Adı isimli DataColumn un satırlarını  /Tarih_Date/Currency/Isim node ları ile dolduruyoruz.
dr[1] = kod.Item(i).InnerText.ToString();
// Kod satırları
dr[2] = doviz_alis.Item(i).InnerText.ToString();
// Döviz Alış
dr[3] = doviz_satis.Item(i).InnerText.ToString();
// Döviz  Satış
dr[4] = efektif_alis.Item(i).InnerText.ToString();
// Efektif Alış
dr[5] = efektif_satis.Item(i).InnerText.ToString();
// Efektif Satış.
dt.Rows.Add(dr);

}

// DataTable ımızın satırlarını 18 satır olacak şekilde dolduruyoruz
// gerçi yine web mastırın insafı devreye giriyor:).
// yukarıda bahsettiğim sorun.

return dt;

// DataTable ı döndürüyoruz.

}

İşte döviz kurları en güncel hali ile uygulamamızın içinde!



Ben ayrıca xml query e örnek olabilecek bir çapraz kur değişim programı yazdım. En kısa sürede düzenleyip göndermeyi planlıyorum.

Not:

XmlTextReader rdr = new XmlTextReader(" http://www.tcmb.gov.tr/kurlar/today.xml");
DataSet ds = new DataSet();
ds.ReadXml(rdr);
dataGrid1.DataSource=ds;

bu kod da belirtilen url deki bir xml dokümanını direkt olarak dataset e aktarır. Yani bu 4 satırlık kod yukarıdaki kod ile aynı işi yapıyor:)

Makale:
C# ile T.C.M.B Döviz Kurlarının Elde Edilmesi XML ve Web Servisleri Tolga Güler
  • Yazılan Yorumlar
  • Yorum Yaz
HAZ
20
2013
gridview.CaptionText i tanımıyor nasıl halledebilrim?
MAY
9
2010
arkadaşım ben bu kodu kullandım çok saol ama şöle bir sorunum var .ben bu kodları döviz otomasyonu yaptım onda kullandım ama .internet olmadığı zaman proğramım hata veriyor .onu nasıl halladebilirim acaba try catch içinde gösterirmisiniz acaba?? şimdiden tşkler
EYL
16
2009
İpucu : Tüm kurları listelemek istemeyebilirsiniz. Sadece USD,EURO yu listelemek isterseniz de select where ile filtreleyin ve kullanın.
KAS
21
2006
Ilgili http:www.tcmb.gov.trkurlartoday.xml sayfasinda en altta hala Not: Deneme Aşamasındadır. Lütfen önerilerinizi Webmaster a gönderiniz yaziyor olmasi ayri bir komedyan isidir herhalde. Zira bugun 20061121 ama kodun calisirildiginda ve siteye eklendigindeki ekran ciktisinda tarih olarak 22030926 yi goruyoruz. Demekki : - WebMaster Bildirilen gorusleri pek sallamiyor ki Tolga Guler adli arkadasin tespit ettigi mantik hatasi hala devam ediyor. - O yaziyi oraya yazan arkadas onu unuttu ya da isten cikti yerine baskasi bakiyor ve farkinda degil.. - Merkaz Bankasi gibi bir kurumun bile bir kucucuk xml sayfasi 3 yili askin sure deneme sayfasinda kalabiliyor. seceneklerinden biri muhtemelen dogru oluyor :-)
ŞUB
16
2004
XML formatının getirilerini çok güzel bir şekilde özetleyen bir örnek.Web serviceleri anlamak için önce bu örneği incelemek gerekli diye düşünüyorum.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor