create
databaseMakalelerimuseMakalelerimcreate tabletbl_haber(Haberid int identity(1,1),Haberbaslik nvarchar(max),Haberkisayazi nvarchar(max),HaberIcerik nvarchar(max)) Makalelerim adında oluşturduğum database imin içine tbl_haber adında tablomu oluşturdum . Şimdi içerisine bir kaç adet haber girelim . tbl_haber tablomuzu açıp içerisine değerlerimizi girdik . Sql ile olan işimiz simdilik bitti . Tabiki içerik yönetimi olması icin ekle sil duzenle gibi işlemleride yapmamız gerekmektedir . Bizim amacımız sqldeki verileri okumak ve bunları xml olarak flash ın görmesini sağlamak . 2. ADIM : XML YAPIMIZI INCELEYELIM . Xml yapımızı inceleyelim . Flash animasyonumuz bizden aşağıdaki formatda xml ister ...
<?
xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Başlık</title><link>sayfa url</link><description>Açıklama</description><copyright>copyright bilgilerimiz</copyright><pubDate>Oluşturulma Tarihi</pubDate><language>Dil bilgisi</language><webMaster>Siteyi Tasarlayanın Adı</webMaster><item><title>Haber Başlık</title><description>Haber İçerik</description><link>Haber Link</link></item><item><title>Haber Başlık</title><description>Haber İçerik</description><link>Haber Link</link></item><item><title>Haber Başlık</title><description>Haber İçerik</description><link>Haber Link</link></item></channel></rss> Amacımız yukarıdaki formatda bir xml dosyasını c# ile sqldeki haber bilgilerini alarak dinamik sekilde xml dosyası oluşturmak olucakdır . 3. Adım : Yukarıdaki adımlarda önce Sql içerisinde database imizi oluşturduk daha sonra tablomuzu oluşturup içerisine verilerimizi girdik flash animasyonumuzun istedigi xml yapısını gördük . Artık bizim sqlden verilerimizi alıp içerde bunları xml e cevirip flash ile kullanmamız gerekmektedir . Şimdi biraz Code yazalım :)C# da işlemlerimize başlamadan önce haber class ımızı yazalım ...haberlerim.cspublicclass haberlerim{ public inthaberid { get; set; } public stringhaberbaslik { get; set; } public stringhaberkisayazi { get; set; } public stringhabericerik { get; set; } publichaberlerim() { }}Yukarıda haberlerim sınıfımızı tamamladık .Şimdi gidelim ve database imize baglanıp haberlerimizi çekelim .databaseislemlerim.cstbl_haber tablomuzu açıp içerisine değerlerimizi girdik . Sql ile olan işimiz simdilik bitti . Tabiki içerik yönetimi olması icin ekle sil duzenle gibi işlemleride yapmamız gerekmektedir . Bizim amacımız sqldeki verileri okumak ve bunları xml olarak flash ın görmesini sağlamak . public class databaseislemlerim { SqlConnectioncon; SqlCommandcmd; publicdatabaseislemlerim() { con = new SqlConnection("data source=.; initial catalog=Makalelerim; integrated security = true"); } public voidBaglantiIslemlerim() { if(con.State == System.Data.ConnectionState.Closed) { con.Open(); } else { con.Close(); } } public SqlDataReaderHaberlerimiAl() { cmd = new SqlCommand("Select * from tbl_haber", con); BaglantiIslemlerim(); returncmd.ExecuteReader(); }} Yukarıda Sql server ımıza bağlanıp tbl_haber tablosundan verilerimizi çektik ve SqlDataReader olarak bir ust katmana aktardık . Şimdi Datayonetim sınıfı tanımlayıp aldıgımız bu ham veriyi ( SqlDataReader ) düzenleyip bir koleksionda toplayacağız . Datayonetim.cspublic class datayonetim{ databaseislemlerimislem; SqlDataReaderReader; publicdatayonetim() { islem = new databaseislemlerim(); } public List<haberlerim> HaberlerimiAl() { List<haberlerim> Haberlerim = new List<haberlerim>(); Reader = islem.HaberlerimiAl(); while(Reader.Read()) { Haberlerim.Add(new haberlerim() { haberid = Reader.GetInt32(0), haberbaslik = Reader.GetString(1), haberkisayazi = Reader.GetString(2), habericerik = Reader.GetString(3), }); } Reader.Close(); islem.BaglantiIslemlerim(); returnHaberlerim; }} Datayonetim sınıfımızda islem.HaberAl(); metotumuzdan gelen SqlDataReader while içerisinde Read(); olana kadar verilerimizi list<haberlerim> koleksiyonuna topladık . Şimdi elimizde sql server ımızdan gelen haberlerimiz list<T> olarak elimizde var . Şimdi verilerimizi uygun xml formatında kayıt edelim . xmlislemlerim.cspublic XElementHaberXmlAl(List<haberlerim> Haberler){ List<XElement> d = new List<XElement>(); XElementitemlar; foreach(haberlerimitem inHaberler) { itemlar = new XElement("item", new XElement("title", item.haberbaslik), new XElement("description", item.haberkisayazi), new XElement("link", "haberdetay.aspx?id=", item.haberid)); d.Add(itemlar); } XElementx = new XElement("rss", new XAttribute("version", "2.0"), new XElement("channel", new XElement("title", "Cengiz Atilla - Haberler Uygulaması"), new XElement("link", "http://www.cengizatilla.com"), new XElement("description", "Flash Xml Csharp Kardesligi | :)"), new XElement("copyright", "2009 Cengiz AT˜LLA"), new XElement("pubDate", "06 - 06 - 2009"), new XElement("language", "tr-TR"), new XElement("webMaster", "Cengiz Atilla"), d)); returnx;} Xml işlemleri sınıfımızda HaberAlXml(List<haberlerim> haberler) metotumuz parametre olarak list<haberlerim> tipinden koleksiyon istemektedir . Biz datayonetim.cs sınıfımızda bu sekilde database tarafından gelen verilerimizi düzenlemiştik . ( Verilerimiz Hazır ) HaberAlXml metotumuz içerisinde flash animasyonumuzun istediği xml şemasına uygun verilerimizi yazdık ve geriye XElement tipinde deger döndürdük. Şimdi default.aspx sayfamızda flash animasyonumuzu koyalım ve bir adet buton atalım .
public
class haberlerim{ public inthaberid { get; set; } public stringhaberbaslik { get; set; } public stringhaberkisayazi { get; set; } public stringhabericerik { get; set; } publichaberlerim() { }}Yukarıda haberlerim sınıfımızı tamamladık .Şimdi gidelim ve database imize baglanıp haberlerimizi çekelim .databaseislemlerim.cstbl_haber tablomuzu açıp içerisine değerlerimizi girdik . Sql ile olan işimiz simdilik bitti . Tabiki içerik yönetimi olması icin ekle sil duzenle gibi işlemleride yapmamız gerekmektedir . Bizim amacımız sqldeki verileri okumak ve bunları xml olarak flash ın görmesini sağlamak . public class databaseislemlerim { SqlConnectioncon; SqlCommandcmd; publicdatabaseislemlerim() { con = new SqlConnection("data source=.; initial catalog=Makalelerim; integrated security = true"); } public voidBaglantiIslemlerim() { if(con.State == System.Data.ConnectionState.Closed) { con.Open(); } else { con.Close(); } } public SqlDataReaderHaberlerimiAl() { cmd = new SqlCommand("Select * from tbl_haber", con); BaglantiIslemlerim(); returncmd.ExecuteReader(); }}
class databaseislemlerim { SqlConnectioncon; SqlCommandcmd; publicdatabaseislemlerim() { con = new SqlConnection("data source=.; initial catalog=Makalelerim; integrated security = true"); } public voidBaglantiIslemlerim() { if(con.State == System.Data.ConnectionState.Closed) { con.Open(); } else { con.Close(); } } public SqlDataReaderHaberlerimiAl() { cmd = new SqlCommand("Select * from tbl_haber", con); BaglantiIslemlerim(); returncmd.ExecuteReader(); }}
Yukarıda Sql server ımıza bağlanıp tbl_haber tablosundan verilerimizi çektik ve SqlDataReader olarak bir ust katmana aktardık . Şimdi Datayonetim sınıfı tanımlayıp aldıgımız bu ham veriyi ( SqlDataReader ) düzenleyip bir koleksionda toplayacağız . Datayonetim.cspublic class datayonetim{ databaseislemlerimislem; SqlDataReaderReader; publicdatayonetim() { islem = new databaseislemlerim(); } public List<haberlerim> HaberlerimiAl() { List<haberlerim> Haberlerim = new List<haberlerim>(); Reader = islem.HaberlerimiAl(); while(Reader.Read()) { Haberlerim.Add(new haberlerim() { haberid = Reader.GetInt32(0), haberbaslik = Reader.GetString(1), haberkisayazi = Reader.GetString(2), habericerik = Reader.GetString(3), }); } Reader.Close(); islem.BaglantiIslemlerim(); returnHaberlerim; }}
class datayonetim{ databaseislemlerimislem; SqlDataReaderReader; publicdatayonetim() { islem = new databaseislemlerim(); } public List<haberlerim> HaberlerimiAl() { List<haberlerim> Haberlerim = new List<haberlerim>(); Reader = islem.HaberlerimiAl(); while(Reader.Read()) { Haberlerim.Add(new haberlerim() { haberid = Reader.GetInt32(0), haberbaslik = Reader.GetString(1), haberkisayazi = Reader.GetString(2), habericerik = Reader.GetString(3), }); } Reader.Close(); islem.BaglantiIslemlerim(); returnHaberlerim; }}
Datayonetim sınıfımızda islem.HaberAl(); metotumuzdan gelen SqlDataReader while içerisinde Read(); olana kadar verilerimizi list<haberlerim> koleksiyonuna topladık . Şimdi elimizde sql server ımızdan gelen haberlerimiz list<T> olarak elimizde var . Şimdi verilerimizi uygun xml formatında kayıt edelim . xmlislemlerim.cspublic XElementHaberXmlAl(List<haberlerim> Haberler){ List<XElement> d = new List<XElement>(); XElementitemlar; foreach(haberlerimitem inHaberler) { itemlar = new XElement("item", new XElement("title", item.haberbaslik), new XElement("description", item.haberkisayazi), new XElement("link", "haberdetay.aspx?id=", item.haberid)); d.Add(itemlar); } XElementx = new XElement("rss", new XAttribute("version", "2.0"), new XElement("channel", new XElement("title", "Cengiz Atilla - Haberler Uygulaması"), new XElement("link", "http://www.cengizatilla.com"), new XElement("description", "Flash Xml Csharp Kardesligi | :)"), new XElement("copyright", "2009 Cengiz AT˜LLA"), new XElement("pubDate", "06 - 06 - 2009"), new XElement("language", "tr-TR"), new XElement("webMaster", "Cengiz Atilla"), d)); returnx;} Xml işlemleri sınıfımızda HaberAlXml(List<haberlerim> haberler) metotumuz parametre olarak list<haberlerim> tipinden koleksiyon istemektedir . Biz datayonetim.cs sınıfımızda bu sekilde database tarafından gelen verilerimizi düzenlemiştik . ( Verilerimiz Hazır ) HaberAlXml metotumuz içerisinde flash animasyonumuzun istediği xml şemasına uygun verilerimizi yazdık ve geriye XElement tipinde deger döndürdük. Şimdi default.aspx sayfamızda flash animasyonumuzu koyalım ve bir adet buton atalım .
XElementHaberXmlAl(List<haberlerim> Haberler){ List<XElement> d = new List<XElement>(); XElementitemlar; foreach(haberlerimitem inHaberler) { itemlar = new XElement("item", new XElement("title", item.haberbaslik), new XElement("description", item.haberkisayazi), new XElement("link", "haberdetay.aspx?id=", item.haberid)); d.Add(itemlar); } XElementx = new XElement("rss", new XAttribute("version", "2.0"), new XElement("channel", new XElement("title", "Cengiz Atilla - Haberler Uygulaması"), new XElement("link", "http://www.cengizatilla.com"), new XElement("description", "Flash Xml Csharp Kardesligi | :)"), new XElement("copyright", "2009 Cengiz AT˜LLA"), new XElement("pubDate", "06 - 06 - 2009"), new XElement("language", "tr-TR"), new XElement("webMaster", "Cengiz Atilla"), d)); returnx;}
Xml işlemleri sınıfımızda HaberAlXml(List<haberlerim> haberler) metotumuz parametre olarak list<haberlerim> tipinden koleksiyon istemektedir . Biz datayonetim.cs sınıfımızda bu sekilde database tarafından gelen verilerimizi düzenlemiştik . ( Verilerimiz Hazır ) HaberAlXml metotumuz içerisinde flash animasyonumuzun istediği xml şemasına uygun verilerimizi yazdık ve geriye XElement tipinde deger döndürdük. Şimdi default.aspx sayfamızda flash animasyonumuzu koyalım ve bir adet buton atalım .
<body><form id="form1" runat="server"><div></div><table cellpadding="0" cellspacing="0" style="width: 935px"><tr><td><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="898" height="29"><param name="movie" value="ewsflow.swf"><param name="quality" value="high"><embed src="ewsflow.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="898" height="29"></embed></object></td></tr><tr><td style="text-align: center"><asp:Button ID="btn_xml" runat="server" onclick="btn_xml_Click" Text="Yeni Haberleri Yükle" Width="541px" /></td></tr></table></form></body>
Yukarıda default.aspx sayfamıza flash animasyonumuzu ve bir adet buton ekledik . Butona tıkladıgımız zaman xml dosyamız oluşucaktır . Şimdi default.aspx.cs sınıfımıza gidelim ve son işlemimiz olan butona tıklama olayını yazalım . default.aspx.cspublic partial class _Default: System.Web.UI.Page{xmlislemlerimxmlislem;datayonetimyonetim; protected voidPage_Load(objectsender, EventArgse) { xmlislem = new xmlislemlerim(); yonetim = new datayonetim(); } protected voidbtn_xml_Click(objectsender, EventArgse) {
XElementelement = xmlislem.HaberXmlAl(yonetim.HaberlerimiAl()); stringyol = Server.MapPath(".\\"); element.Save(yol + "ar.xml"); }}
Artık butona bastıgımız zaman ;
Örnek Kodlar icin http://www.cengizatilla.com/images/Haberservis.rar linkinden indirebilirsiniz . Cengiz ATİLLA www.cengizatilla.com atilla@cengizatilla.com