C# Sql Tablosunu Xml Olarak Çıkarma
Bügün nasıl C# Windows Formda Sql tablosunu Xml olarak çıkaracağımızı göstereceğim. Burada yaptığım örnekte Northwind database kullandım yoksa sizde indirebilirsiniz.
Öncelikle Xml hakkında birazcık konuşalım xml veri anlık olarak değişkenliğe uğrar örneğin merkez bankasının anlık kur değiştirmesi Xml veri olarak gönderilir. Onlarda Xml veriyi Sqlden çekmektedir bizde öyle yapacağız.
Sizle bir Windows Form yapalım ve onda hem veriyi çekelim ve o veriyi listbox’da gösterelim.
Burada Product Tablosundaki 3 adet column çekilecek label kısmında yazıyor çekeceğimiz yerler
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <span style="color: #000000;">try { SqlDataAdapter da = new SqlDataAdapter("select ProductName,QuantityPerUnit,UnitsInStock from Products",baglan); DataTable dt = new DataTable("Products"); da.Fill(dt); dt.WriteXml("../../Product.xml"); dt.WriteXmlSchema("../../ProductSchema.xml"); MessageBox.Show("Başarılı"); } catch (Exception ex) { MessageBox.Show(ex.Message); }</span> |
Burada Try Catch açtım hata mesajı alırsam sebebini göreyim diye
Sqldataadapter kullandım veri çekeceğim için sorgumu yazdım 3 column çekeceğim.
datatable oluşturdum (“Products”) yazma sebebi hem tablo adı hem xml bloglarının başlangıcı
dt.writexml dedim xml dök bunları dedim ../../Product.xml yazmam sebebim programın debug klasöründen 2 üst klasöre kaydetsin diye yazdım
writexmlschemayı yazmamızım sebebi çekeceğimiz verinin veri tipini görmek için yazıyoruz.
Xmlden Getir
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <span style="color: #000000;"> listBox1.Items.Clear(); XmlDocument xDoc = new XmlDocument(); xDoc.Load("../../Product.xml"); XmlNodeList Products = xDoc.DocumentElement.ChildNodes; foreach (XmlNode Proc in Products) { string ProductName = Proc.ChildNodes[0].InnerText; string QuantityPerUnit = Proc.ChildNodes[1].InnerText; var UnitsInStock = Proc.LastChild.InnerText; listBox1.Items.Add(string.Format("ProductName: {0}, QuantityPerUnit: {1},UnitsInStock:{2}", ProductName, QuantityPerUnit, UnitsInStock)); }</span> |
Xml document oluşturdum sonra xdoc.load yaptım çıkardığımız xml’in dosya yolunu buluyoruz.
XmlNodelist Diye bişey açıyoruz documentin child notlarını aç diyoruz.
foreach açtık xmlnode degişkeni oluşturduk içinde ve products ü döndürüyoruz.
sonra içinde degişkenler oluşturdum 0.indexi 1.indexi yazdım innertext verdim son indexi last ile çektim
Listboxa veriyi yazdırdım string format şeklinde childların isimlerini elle yazdım ondan string formatla çektim.