Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
3
Cevap
1266
Tıklama
0
Öne Çıkarma
c# ta xml kullanımı
S
13 yıl
Onbaşı
Konu Sahibi

sorunum şu merkez bankasından 2010 yılından itibaren döviz kurları bilgilerini çekmek istiyorum merkez bankası da günlük döviz kurları bilgilerini sitede yayınlıyor ama tatil günlerinde borsa açık olmadığından o günlere ait xml dosyası yok ben bir döngü kurdum ve 5 güne kadar yani tatil günleri dışında yayınlanan xml leri sql veri tabanına alabiliyorum doğal olarak tatil günlerinde xml bulunmadığından o günlere denk geldiğinde xml dosyasından hata alıyorum tatil günlerinin belli bir sistematiği de yok sadece hafta sonları değil bundan kurtulmak için ne yapabilirim..? yardımlarınızı bekliyorum teşekkürler

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



K
13 yıl
Yarbay

Selamlar
For dongusunun icinde yaptigin cekme islemi try catch bloklari icinde yap. En basidi bu.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
S
13 yıl
Onbaşı
Konu Sahibi

evet bunu denetim ancak try ve catch çalışmayışının sebebi ikisinin içinde çalışan kodların birbirinden bağımsız olması yani demek istediğim try içinde i=5 kadar geldi ve 6 da hata ile karşılarştı catch e atlayacak ancak burda tekrardan 0 dan başlar manuel de girsem başlangış sayısını 3 yıl için her seferinde nerede takılacağını hesap edip hepsinin önüne try catch koyamam yinede yardımın için tşkkürler


Bu mesaja 1 cevap geldi.
S
13 yıl
Onbaşı
Konu Sahibi

en iyisi tüm kodu yazayım siz bi bakın


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Data.SqlClient;

namespace döviz_kurları
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)
{


}

private void button1_Click(object sender, EventArgs e)
{

dataGridView1.DataSource = source();
}

public DataTable source()
{
string d, b, c, gün, ay, yil;
int gün1, ay1,yil1;
gün = ("01");
ay = ("01");
yil = ("2012");
gün1 = Convert.ToInt32(gün);
ay1 = Convert.ToInt32(ay);
yil1 = Convert.ToInt32(yil);
DataTable dz = new DataTable();
SqlConnection sqlcon = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=döviz_kurlari;Data Source=JOKER-EVE");
SqlCommand comm = new SqlCommand();
comm.Connection = sqlcon;
sqlcon.Open();
DataTable dt = new DataTable();
DataRow dr;
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)));
dt.Columns.Add(new DataColumn("yeni sütun", typeof(string)));
for (int n = 0; n < 1; n++)
{
gün = "01";
gün1 = Convert.ToInt32(gün);
int r;
r = ay1;
if (r > 7)
{
if (r % 2 == 0)
{
r = 31;
}
else
{
r = 30;
}
}
else
{
if (r % 2 == 1)
{
r = 31;
}
else
{
if (r == 2)
{
if (yil1 % 4 == 0)
{
r = 29;
}
else
{
r = 28;
}
}
else
{
r = 30;
}
}

}
for (int j = 0; j < r; j++)
{
b = gün + ay + yil;
c = yil + ay;

d = "http://www.tcmb.gov.tr/kurlar/" + c.ToString() + "/" + b.ToString() + ".xml";
XmlTextReader rdr = new XmlTextReader(d);
XmlDocument myxml = new XmlDocument();
myxml.Load(rdr); //TATİL GÜNLERİNDE BURDAN HATA ALIYORUM
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");
int x = doviz_alis.Count;
for (int i = 0; i < x; i++)
{
dr = dt.NewRow();
dr[0] = adi.Item(i).InnerText.ToString();
dr[1] = kod.Item(i).InnerText.ToString();
dr[2] = doviz_alis.Item(i).InnerText.ToString();
dr[3] = doviz_satis.Item(i).InnerText.ToString();
dr[4] = efektif_alis.Item(i).InnerText.ToString();
dr[5] = efektif_satis.Item(i).InnerText.ToString();
dt.Rows.Add(dr);
//comm.CommandText = "insert into currency(name,code) values('"+dr[0]+"','"+dr[1]+"')";
//comm.ExecuteNonQuery();
//comm.CommandText = "insert into exrates(code,cbuying,cselling,ebuying,eselling) values('" + dr[1] + "','" + dr[2] + "','" + dr[3] + "','" + dr[4] + "','" + dr[5] + "')";
//comm.ExecuteNonQuery();
//comm.CommandText = "insert into exrates(d_date) values('"+gün+"."+ay+"."+yil+"')";
//comm.ExecuteNonQuery();
}
gün1++;
if (gün1 < 10)
{
gün = "0" + gün1.ToString();
}
else
{
gün = gün1.ToString();
}
}
ay1++;
if (ay1 < 10)
{
ay = "0" + ay1.ToString();
}
else
{
ay = ay1.ToString();
}
} return dt;
}
}
}



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.