21 Aralık 2010 Salı

Günlük Döviz Kuru XML

//bu da xml dosyasını çekip okuyo ve datatable a atıyor
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)));

// DataTableımıza 4 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
try
{
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 cinsinden her bir nodu, SelectSingleNode metoduna nodların xpathini parametre olarak
// göndererek tanımlıyoruz
dovizKurlari_label_tarih.Text = tarih.InnerText.ToString() + " tarihli merkez bankası kur bilgileri";
// datagridimin captionu ayarlıyoruz
int x = 12;
/* x gibi bir değişken tanımladımbu 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*/
for (int i = 0; i < x; i++)
{
string a;
a = kod.Item(i).InnerText.ToString();
//her bir doviz turunu alıyo ve değerlerini okuyo
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ış
dt.Rows.Add(dr);//değerleri bit satıra attık ve datatable a yerleştirdik
}

dataGridView_dovizKurlari.DataSource = dt;
dataGridView_dovizKurlari.Columns[0].Width = 300;

c# mail gönderme

private void MailGonder()
{
MailMessage _mail = new MailMessage(); // MailMessage nesnemizi oluşturuyoruz.

_mail.From = new MailAddress("blabla@hotmail.com"); // Burada kimden geldiği

_mail.To.Add("blabla@hotmail.com"); // hangi mail adresine gidecegi

_mail.Subject = "Konu"; // Mail konusu

_mail.Priority = MailPriority.High; // Ek bir özelliktir mail öncelik değeri

_mail.Body = "İçerik"; // Mail içeriği buraya yazılmaktadır.

SmtpClient _client = new SmtpClient(); // smtp sunucusuna bağlanmak için kullanacağımız nesnemizi oluşturuyoruz.

_client.Credentials = new System.Net.NetworkCredential("blabla@hotmail.com", "sifre"); // Mail adresi ve şifremizi gösteriyoruz.

_client.Host = "smtp.live.com"; // hotmail smtp sunucu ismi

_client.Timeout = 50000; // timeout :)

_client.Port = 587; // kullanılacak olan port burada hotmailın kullandığı porttur.


_client.SendCompleted += new SendCompletedEventHandler(_client_SendCompleted); // Gönderildikten sonra tetiklenecek.Tetiklenme durumunda mailın gönderilmiş yada gönderilmemiş olduğunu buradan öğrenilebilinir.

_client.EnableSsl = true; // ssl 'i aktifleştiriyoruz.

string userState = "Mail Gönderiliyor";

_client.SendAsync(_mail, userState); //Gönderme olayı
}

eğer mailimize eklemek istediğimiz dosyalar varsa:

burada dosyaları alacağınız dizinlerde windows yetki sınırlaması sorunu ile karşılaşabiliriz bu nedenle kullanıcı korumalı yerler yerine direkt driver üzerinden alınacak dosyalar işimizi kolaylaştırır.

_mail.Attachments.Add(new Attachment("C:\\Resim.zip"));
_mail.Attachments.Add(new Attachment("C:\\Resim.zip"));

Crystal Reports -Raporu kod içinden oluşturma

kullanılan kütüphaneler
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;

raporun bir objesi yaratılır ve rapor görüntüleyicinin kaynağına atanır.
Crystal_form101 a = new Crystal_form101();
crystalReportViewer1.ReportSource = a;

raporun parametreleri
a.SetParameterValue("sayfaSayisi", sayfaSayisi);
a.SetParameterValue("referans_no", form101.Marka_id.Referans_no);
a.SetParameterValue("ibareler", form101.Marka_id.Marka_orneginde_kullanilan_ibareler);

subreport'a ait parametreler
a.SetParameterValue("marka_id", "" + form101.Marka_id.Id_marka, "ruchanlar_sub");
a.SetParameterValue("first_ruchan_id", "" + list_ruchan[0].Id_ruchan, "ruchanlar_sub");

raporu pdf formatında almak

try
{
ExportOptions CrExportOptions ;
DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
CrDiskFileDestinationOptions.DiskFileName = "c:\\csharp.net-informations.pdf";
CrExportOptions = cryRpt.ExportOptions;
{
CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
CrExportOptions.FormatOptions = CrFormatTypeOptions;
}
cryRpt.Export();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}