16 Temmuz 2013 Salı

C# SQL Üzerinden XML Dosya yaratma

SqlConnection baglanti = new SqlConnection("Server=GENÇAY-GENÇAY;Database=Northwind;Trusted_Connection=True;");
SqlCommand cmd = new SqlCommand("Select * from Personeller",baglanti);

baglanti.Open();

SqlDataReader dr = cmd.ExecuteReader();

XmlTextWriter XMLDosyasi = new XmlTextWriter("Personeller.xml",Encoding.GetEncoding(1254));

//XmlTextWriter nesnesi ile "Personeller.xml" adındaki XML dosyasının nereye olusturulacağını belirledik.
//Encoding.GetEncoding(1254) = Türkçe karakter dil koduna göre XML dosyasını encode etmesini söyledik.

XMLDosyasi.Formatting = Formatting.Indented;

//Formatting özelliği, XML nodelarının girintili yazılacağını belirtir.

XMLDosyasi.WriteStartDocument();

//XML dosyasına yazılmasına başlayacağını bildirdik.

XMLDosyasi.WriteComment("Burada personellerimiz listelenmektedir.");

//Bu metod ile XML dosyamıza yorum(Comment) eklenmesi sağlanır.
//Bundan sonra elemanları yazdırmaya başlayalım...

XMLDosyasi.WriteStartElement("Personeller");

//Bu metod ile XML dosyasının root elemanı belirleniyor.

while (dr.Read())
{
    XMLDosyasi.WriteStartElement("Personel");

    //WriteStartElement() metodu ile yazılan ilk eleman root eleman olur.Daha sonrakiler root un içindeki ana nodelar olur.

    XMLDosyasi.WriteAttributeString("No", dr["PersonelID"].ToString());

    //WriteAttributeString() metodu ile herhangi bir node a Attribute yazılabilir.

    for (int i = 0; i < dr.FieldCount; i++)
    {
        XMLDosyasi.WriteElementString(dr.GetName(i), dr[i].ToString());
        //Node ları getirtiyoruz.
    }

    XMLDosyasi.WriteEndElement();

    //Oluşturulan ana node kapatılıyor.
}

XMLDosyasi.WriteEndElement();

//Root eleman kapatılıyor.

XMLDosyasi.WriteEndDocument();

//XML sayfasının yazma işlevi bitti.

XMLDosyasi.Close();

baglanti.Close();

MessageBox.Show("İşlem Tamamlandı.");

Hiç yorum yok: