Osman KURT

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

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

 

Yorumlar (24) -

  • kamil

    10.10.2011 05:47:24 | Yanıtla

    Kardeş çok teşekkürler, işime yaradı.

  • sami

    22.2.2012 02:12:47 | Yanıtla

    nasıl çalışıyor allaşkına? ben acemiyim, denedim ama olmadı?

    • osmankurt

      22.2.2012 05:17:42 | Yanıtla

      @Sami
      Nasıl bir problemle karşılaştın yazabilir misin.
      O zaman daha çabuk ve doğru şekilde yardımcı olabilirim. Normal de yukarda yazanları aynen uygularsan herhengi bir problemle karşılaşmaman lazım.

  • ali

    2.3.2012 02:45:41 | Yanıtla

    Tebrikler. Gerçekten onlarca makale okudum. Bu kadar netini görmedim. Emeğiniz için teşekkürler

    • osmankurt

      2.3.2012 05:12:46 | Yanıtla

      İşine yaramasına sevindim Ali. Bende çok gördüm bu konu hakkında ki makaleleri çok gereksiz kod yapıları kullanılıyorlar. Kafa karıştırmaktan başka bir işe yaramıyor.

  • mustafa

    5.11.2012 07:52:29 | Yanıtla

    merhabalar makaleniz için teşekkürler ancak ekstra bir şey  yapamaz mıyız buna, mesela artış olduğunda "artış var" veya düştüğünde "düştü" yazan bir label eklemek istersek onu nasıl yapabiliriz ? şimdiden teşekkürler.

    • osmankurt

      5.11.2012 10:29:34 | Yanıtla

      Merhaba Mustafa,

      Onu string okuma ile yapabiliriz.
      Yani şöyle görünümü hoşuna giden bir web sayfasından (doviz.com,mynet.com gibi) string okuma mantığı ile yapabilirsin. Değerleri ve resimleri okuyorsun direk o siteden aldığı için de herhangi bir yanlışlık olmuyor.

      • mustafa

        5.11.2012 11:07:07 | Yanıtla

        açıkçası yeniyimde bunu biraz daha açabilir misiniz mesela doviz.com daki gibi bir şeyi nasıl ekleyebılırım siteme ?

  • fatih

    30.11.2012 17:16:32 | Yanıtla

    arkadaşım peki dolar alış ve satış euro alış ve satış olarak nasıl olacak peki ...

    • osmankurt

      1.12.2012 04:46:50 | Yanıtla

      Fatih arkadaşım,

      Öncelikle kodun için de bir adres var merkez bankasının adresi o sayfa da bütün alış ve satış değerleri mevcut. Senin oradan alan adını okuyup çok basit en üstte yazan (Döviz Alış=Forex Buying, Döviz Satış=Forex Selling) gibi etiketleri alıp kod kısmın da,

      Convert.ToDecimal(xmlVerisi.SelectSingleNode(string.Format("Tarih_Date/Currency[@Kod='{0}']/ForexSelling", "USD")).InnerText.Replace('.', ','));

      uygun olarak yazman lazım bu kadar basit.

  • berna

    1.3.2013 18:46:14 | Yanıtla

    oh be gerçekten çok iyi oldu. teşekkür ederim

  • Muhammet

    14.3.2013 09:52:52 | Yanıtla

    kardeş çok saol işe yarıyor, fakat şöyle ince bir eksikliği var sanki ben mi çözemedim, virgülden sonra geln 4 rakamdan sonuncusu 0 olunca görünmüyor ?

    • osmankurt

      14.3.2013 11:29:38 | Yanıtla

      Merhaba Muhammet,
      XML den gelen veriye bakmak lazım. Daha önceden dikkat etmediğim bir konuydu teşekkürler.

  • Muhammet Ç.

    26.3.2013 07:31:48 | Yanıtla

    sorunu toString() metoduna format girerek hallettim, çalışan tam kodlar aşağıdadır. Saygılar ;)

    void getCurrency()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("http://www.tcmb.gov.tr/kurlar/today.xml";);
            decimal usBuying = Convert.ToDecimal(xmlDoc.SelectSingleNode(string.Format("Tarih_Date/Currency[@Kod='{0}']/ForexBuying", "USD")).InnerText.Replace('.', ','));

            decimal usSelling = Convert.ToDecimal(xmlDoc.SelectSingleNode(string.Format("Tarih_Date/Currency[@Kod='{0}']/ForexSelling", "USD")).InnerText.Replace('.', ','));

            decimal euBuying = Convert.ToDecimal(xmlDoc.SelectSingleNode(string.Format("Tarih_Date/Currency[@Kod='{0}']/ForexBuying", "EUR")).InnerText.Replace('.', ','));

            decimal euSelling = Convert.ToDecimal(xmlDoc.SelectSingleNode(string.Format("Tarih_Date/Currency[@Kod='{0}']/ForexSelling", "EUR")).InnerText.Replace('.', ','));

            lblUsBuying.Text = usBuying.ToString("0.0000");
            lblUsSelling.Text = usSelling.ToString("0.0000");
            lblEuBuying.Text = euBuying.ToString("0.0000");
            lblEuSelling.Text = euSelling.ToString("0.0000");
        }

  • hüseyin

    8.6.2013 16:31:48 | Yanıtla

    arkadaşlar aspnet te bu alınan döviz kurlarını otomatik sql veri tabanına nasıl ekleyebiliriz. yardımcı olurmusunuz. acildir.

  • Yasin

    16.8.2013 20:29:10 | Yanıtla

    Peki Diğer Kurları Nasıl Çekebiliri Sterlin Gibi ?

    • osmankurt

      16.8.2013 22:23:01 | Yanıtla

      Alt kısımda cevabı verdim inceleyebilirsin.

  • Yasin

    16.8.2013 20:36:43 | Yanıtla

    Diğer Döviz Kurlarını Nasıl Çekebiliriz Sterlin Mark Gibi Mantıgı Nedir ?

    • osmankurt

      16.8.2013 22:22:16 | Yanıtla

      Merhaba,
      Eğer kod kısmın da yazan xml'i incelersen "Döviz Kodu Currency Code" alanı var en başta orada yazan kodları benim paylaştığım kodlardaki ForexSelling", "USD" kısmına yazarsan istediğin kuru çekersin.

  • mero

    21.3.2014 17:50:26 | Yanıtla

    Merhaba, Peki çekilen verileri sql ‘e nasıl kaydede biliriz? Benim yapmak isteiğim tam olarak şöyle birşey Örnek;

    Dün: 01.01.2014
    Dolar: 1TL
    Euro: 2TL

    Bugün: 02.01.2014
    Dolar:1,5TL
    Euro:3TL

    Dünün bilgilerini SQL kaydettirip bugünküler ile karşılaştırıp, Eğer düşmüş ise aşağı ok ile düşüş ibaresini belirtmek artmış ise yine yukarı ok ile bunu belirtmek. Sanırım mantık olarak sql dünün bilgileri ile bugün ki tarihleri karşılaştırmak ile olacak ancak kodlamasını nasıl yapacağımı bilmiyorum

  • Ömer

    26.5.2018 02:52:49 | Yanıtla

    Merhaba,
    Öncelikle makaleniz için teşekkürler ederim.
    Ricam.
    MVC 5 de uygulamaya çalıştım beceremedim. Yardımcı olabilirsen sevinirim.

    • Osman kURT

      29.5.2018 22:52:10 | Yanıtla

      Merhaba Ömer,

      MVC'de label yerine ViewBag'a basman ve ekranda göstermen yeterli olacaktır.

Loading