Merhabalar, Bu yazımda web servisinden gelen string türündeki xml datayı LINQ query kullanarak veritabanına kaydeden ufak bir uygulamayı anlatacağım. Aslında gelen data serialize edilmiş osym nin verisi. Osym nin web servis bilgilerini ekledikten sonra belirlediğimiz namespace üzerinden class ve metod yapılarına ulaşarak sorgulamalarımızı yapıyoruz.
Kaynak Kod:
Osym.AuthenticationHeader aut = new Osym.AuthenticationHeader();
aut.KullaniciAdi = "kullaniciad";
aut.Sifre = "sifre";
Osym.SonucYapi yapi = new Osym.SonucYapi();
Osym.SonucSevisiSoapClient aa = new Osym.SonucSevisiSoapClient();
StringBuilder sb = new StringBuilder();
yapi = aa.SonucGetir(aut, "03", "2010", "s9", txtTCKimlik.Text);
aa.Close();
XmlTextReader xmlDocument = new XmlTextReader(new StringReader(yapi.XMLData));
try
{
using (BesyoDataContext besyo = new BesyoDataContext())
{
bsy_osym_aday_bilgileri aday = new bsy_osym_aday_bilgileri();
while (xmlDocument.Read())
{
if (xmlDocument.NodeType == XmlNodeType.Element)
{
switch (xmlDocument.Name)
{
case "AD":
aday.adi = xmlDocument.ReadString().Trim();
break;
case "TCK":
aday.tc_kimlik = xmlDocument.ReadString().Trim();
break;
case "SOYAD":
aday.soyadi = xmlDocument.ReadString().Trim();
break;
case "OKOD":
aday.okul_kodu = Convert.ToInt32(xmlDocument.ReadString());
break;
case "OTUR":
aday.okul_turu = Convert.ToInt32(xmlDocument.ReadString());
break;
case "OKOL":
aday.okul_kolu = Convert.ToInt16(xmlDocument.ReadString());
break;
case "AOBP_SOZ":
aday.aobp_soz = Convert.ToDecimal(xmlDocument.ReadString());
break;
case "AOBP_SAY":
aday.aobp_say = Convert.ToDecimal(xmlDocument.ReadString());
break;
case "AOBP_EA":
aday.aobp_ea = Convert.ToDecimal(xmlDocument.ReadString());
break;
case "YGS1":
aday.ygs1 = Convert.ToDecimal(xmlDocument.ReadString());
break;
case "YGS2":
aday.ygs2 = Convert.ToDecimal(xmlDocument.ReadString());
break;
case "YGS3":
aday.ygs3 = Convert.ToDecimal(xmlDocument.ReadString());
break;
case "YGS4":
aday.ygs4 = Convert.ToDecimal(xmlDocument.ReadString());
break;
case "YGS5":
aday.ygs5 = Convert.ToDecimal(xmlDocument.ReadString());
break;
case "YGS6":
aday.ygs6 = Convert.ToDecimal(xmlDocument.ReadString());
break;
case "OBP":
aday.obp = Convert.ToDecimal(xmlDocument.ReadString());
break;
case "BASARI2009":
aday.basari_onceki_yil = xmlDocument.ReadString() == "1" ? true : false;
break;
}
}
}
besyo.bsy_osym_aday_bilgileris.InsertOnSubmit(aday);
besyo.SubmitChanges();
//MessageBox.Show("Başarı ile eklendi");
}
xmlDocument.Close();
}
catch (Exception ex)
{
MessageBox.Show("Hata oluştu");
}
75fc2faa-5a73-4fd8-bb3e-4d7a73ba3eac|4|4.0