tam olarak nerede sorun var bi sroun olduğunu sanmıyorum ama :S 2 x pi x re x pi x pi x mi x 7

Herkese merhabalar ben Recep SELLİ bu makalemizde sizlerle birlikte web sitelerimizde rasgele reklam veya metin gsterme işlemini inceliyor olacağız. Belirteyim bu makalemizde xml bir alt yapı hazırlayıp bu yapıdan rasgele değerleri web sitelerimizde gstereceğiz ve sayfamız her yenilendiğinde veya açıldığında bu değerler rasgele değişecek. Bu durumda hemen aklınıza. Net içerisinde yer alan Adrotator kontrolünü kullanmak gelebilir. Fakat biz bu kontrolü kullanmadan alt yapısı tamamen bize ait basit bir class tasarlayacağız. Dilerseniz ncelikle xml dosyamızı hazırlamakla işleme başlayalım. Ben Atatürk'e ait szlerin bir kısmını bu işlem için kullanacağım. Dosyamızın adı Ataturk. xml içeriğine gelince oda aşağıdaki gibi. 01.<?xml version="1.0" encoding="utf-8" ?> 02.<ATATURKSOZLERI> 03. <ATATURK id=1 Text="Milli ekonominin temeli tarımdır." /> 04. <ATATURK id=2 Text="Bağımsızlık, uğruna lmesini bilen toplumların hakkıdır." /> 05. <ATATURK id=3 Text="Türkiye Cumhuriyeti'nin temeli kültürdür." /> 06. <ATATURK id=4 Text="Türk dili, dillerin en zenginlerindendir." /> 07. <ATATURK id=5 Text="Ben Türk gençliğinin spor yaparak güçlü olmasını isterim." /> 08. <ATATURK id=6 Text="Milletleri kurtaranlar yalnız ve ancak ğretmenlerdir." /> 09. <ATATURK id=7 Text="Tüketici yaşamak iyi değildir. Üretici olalım." /> 10. <ATATURK id=8 Text="Ya istiklal, ya lüm." /> 11. <ATATURK id=9 Text="Türk, ğün, çalış, güven." /> 12. <ATATURK id=10 Text="Bilim, gerçeği bilmektir." /> 13.</ATATURKSOZLERI>Xml dosyamızı hazırladığımıza gre şimdi sıra xml dosyamız ile bağlantımızı sağlayacak olan class 'ımızı tasarlayama geldi. Ben Ataturk adında bir class açıyorum ve xml dosyamız ile bağlantımızı sağlayacak olan metodumu yazmaya başlıyorum bu metodumuz aynı zamanda geriye bir DataSet nesnesi dndürecek. Eklememiz gereken namespacelerimiz System. Data Dataset işlemleri için ve System. IO xml dosyamızı okumak için gerekli olan namespace . Csharp için bağlantımızı sağlayacak ve DataSet dndürecek metodumuz. 01. public DataSet AtaturkBaglanti 02. Vb. Net için bağlantımızı sağlayacak ve DataSet dndürecek metodumuz. 1. Public Function AtaturkBaglanti As DataSet 2. Dim path As String = HttpContext. Current. Server. MapPath 3. Dim xmlStream As New StreamReader 4. Dim ds As New DataSet 5. ds. ReadXml 6. xmlStream. Close 7. Return ds 8. End FunctionDilerseniz bu metodumuzda ne yaptığımıza kısaca bir bakalım. ncelikte dosya yolumuzu belirtmek için String tipinde olan path adlı değişkenimizi tanımlıyoruz ve Server. MapPath metodu ile dosya yolumuzu belirtiyoruz. Hemen ardından xml dosyamızı okumak için xmlStream adındaki nesnemizi oluşturuyoruz. Akabinde bir DataSet nesnesi oluşturuyoruz ve bu DataSet nesnemiz içerisine ReadXml metodu ile okuduğumuz xml veriyi aktarıyoruz. xmlStream nesnemizin kapatıyoruz ve DataSet nesnemizi geri dndürüyoruz. Şimdi sırada dolu olan DataSet nesnemizin satır sayısını alıcak olan metodumuzu yazmaya geldi. Csharp için DataSet nesnemizin satır sayısını dndürecek olan metodumuz. 1. public int AtaturkCount 2. Vb. Net için DataSet nesnemizin satır sayısını dndürecek olan metodumuz. 1. Public Function AtaturkCount As Integer 2. Dim ds As DataSet = Me. AtaturkBaglanti 3. Dim Count As Integer = ds. Tables . Rows. Count 4. Return Count 5. End FunctionBu metotlarımızda yaptıklarımızı sıralayacak olursak. ncelikle Bir DataSet nesnesi oluşturuyoruz ve bu DataSet nesnemiz içerisine AtaturkBaglanti adlı metodumuzdan dnen DataSet'imizi aktarıyoruz. Daha sonra Integer tipindeki değişkenimize DataSet'imizin satır sayısını gnderiyor ve bu değişkeni dndürüyoruz. Şimdi sırada rastgele değerimizi üretecek olan metodumuzu yazmaya geldi. Bu metodumuz için Random class'ını kullanacağız bylece her seferinde farklı bir değer elde edeceğiz. Bu metodumuz da geriye Integer tipinde bir değer dndürecek. Csharp için Integer tipinde Random değer dndürecek metodumuz. 1. public int RandomId 2. Vb. Net için Integer tipinde Random değer dndürecek metodumuz. 1. Public Function RandomId As Integer 2. Dim maxrand As Integer = Count 3. Dim rnd As New Random 4. Dim rndNumber As Integer = rnd. Next(1, maxrand) 5. Return rndNumber 6. End FunctionBu metod içinde yaptıklarımıza gz atacak olursak ncelikle bu metodumuzun Integer tipinde bir parametre aldığını grürüz. Bu parametre sizinde tahmin edebileceğiniz gibi bizim DataSet'imizin satır sayısınını referans edecek. Hemen arkasından maxrand adındaki değişkenimizde bu parametreden gelen değeri tutuyor. Daha sonra rastgele bir değer üretmesi için gerekli olan Random sınıfımızdan türettiğimiz rnd adlı nesnemiz yer almakta. Bu nesnemizin hemen altında yer alan rndNumber adlı değişkenimiz rastgele üretilen değeri tutmaktadır. Burada dikkatinizi çekmesi gereken yer sanırım bu satırda bulunan rnd nesnemize ait Next metodunun kullanılıyor olması. Bu metotun yaptığı işlem 1 sayısı ve DataSet nesnemizin satır sayısı arasında bir değeri rndNumber isimli değişkenimize aktarmasıdır. Bylece DataSet nesnemizdeki satır sayısından büyük veya küçük bir değer üretmeyecektir. Buda sayfa her yenilendiğinde veya her açıldığında kesin olarak bir yazının gzükmesini sağlayacaktır. Bu sefer yazacağımız metodumuz ise rasgele üretilen değerde bulan Text'imizi almamızı sağlayacak. Csharp için Text'imizi almamızı sağlayacak olan metodumuz. 01. public void AtaturkRandomText 02.{ 03. DataSet ds = this. AtaturkBaglanti ; 04. int Count = 0; 05. for (int i = 0; i < ds. Tables . Rows. Count; i++) 06. { 07. Count = int. Parse(ds. Tables . Rows . ToString ; 08. if 09. 13. else 14. 16. } 17.}Vb. Net için Text'imizi almamızı sağlayacak olan metodumuz. 01. Public Sub AtaturkRandomText 02. Dim ds As DataSet = Me. AtaturkBaglanti 03. Dim Count As Integer = 0 04. For i As Integer = 0 To ds. Tables . Rows. Count - 1 05. Count = Int32. Parse(ds. Tables . Rows . ToString 06. If Count = RandomId Then 07. LblAtaturk. Text = ds. Tables . Rows . ToString 08. Return 09. End If 10. Next 11. End SubMetodumuz içerisinde yer alan parametrelere bakacak olursak bu parametrelerden RandomId bizim rasgele ürettiğimiz değeri tutacak diğer parametre olan LblAtaturk ise Text'imizi ekranda gstermeye yarayacak. Metodumuza yine AtaturkBaglanti isimli metodumuzu kullanarak başlıyoruz. Count isimli değişkenimiz ise DataSet'imizin o anki satır Id sini tutacak. Bundan sonra bir for dngüsü kuruyoruz bu dngü DataSet nesnemizin satır sayısı kadar dnecek. Dngü içerisinde kurduğumuz bir diğer yapı ise if yapısı bu yapı sayesinde Count isimli değişkenimizin değeri ile RandomId eşit olduğunda DataSet'in o satırında bulunan Text LblAtaturk isimli Label'imiz ile ekrana gsterilecek. Break ve return anahtar szcükleride koşulumuz sağlandıktan sonra artık bu metotlarda bir işimiz kalmadığı için for dngüsünden çıkışımızı sağlayacaktır. Ben Default.aspx sayfama bir Label kontrolu ekliyorum ve sayfamızın Page_Load metoduna gidiyorum. Artık burada yukarıda yazdığımız metotları kullanma zamanı. Csharp için Page_Load isimli metodumuz. 01. protected void Page_Load 02.{ 03. if 04. 10.}Vb. Net için Page_Load isimli metodumuz. 1. Protected Sub Page_Load Handles Me. Load 2. Dim Ata As New Ataturk 3. Dim AtaCount As Integer = Ata. AtaturkCount 4. Dim AtaturkRandomId As Integer = Ata. RandomId 5. Ata. AtaturkRandomText 6. End SubEvet arkadaşlar artık herşey tamam projemizi çalıştırdığımızda xml dosyamız içerisinde yer alan Atatürk'e ait szlerden herhangi birisi sizi karşılıyacaktır. Sayfayı yenilediğiniz de veya projeyi sonlandırıp yeniden çalıştırdığınız ise başka bir sz ile karşılaşacaksınız. Bir makalemizin daha sonuna geldik arkadaşlar, ben Recep SELLİ bu makalemizde asp. net projelerimizde rasgele metin gstermesini incelemiş olduk. Sadece xml yapısına değiştirerek web sitelerinizde reklam, metin veya farklı kampanya logolarını hoş bir şekilde gsterebilirsiniz. Herkese bol kodlamalar. 2 x pi x re x pi x pi x mi x 7

hoca c# pageload'da bi hata var gibime geldi ama yanılıo da olabilirim bi kontrol et istersen :|

eline sağlık hoca (: