Rasgele Reklam Veya Metin Gösterimi
-
Herkese merhabalar ben Recep SELLİ bu makalemizde sizlerle birlikte web sitelerimizde rasgele reklâm veya metin gösterme işlemini inceliyor olacağız. Belirteyim bu makalemizde xml bir alt yapı hazırlayıp bu yapıdan rasgele değerleri web sitelerimizde göstereceğ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 (sınıf) tasarlayacağız. Dilerseniz öncelikle xml dosyamızı hazırlamakla işleme başlayalım. Ben Atatürk’e ait sözlerin 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="Millî 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>
Csharp için bağlantımızı sağlayacak ve DataSet döndürecek metodumuz.01.public DataSet AtaturkBaglanti()02.{03. String path = HttpContext.Current.Server.MapPath(@"App_Data\Ataturk.xml");04. StreamReader xmlStream = new StreamReader(path);05. DataSet ds = new DataSet();06. ds.ReadXml(xmlStream);07. xmlStream.Close();08. return ds;09.}
Vb.Net için bağlantımızı sağlayacak ve DataSet döndürecek metodumuz.1.Public Function AtaturkBaglanti() As DataSet2. Dim path As String = HttpContext.Current.Server.MapPath("App_Data\Ataturk.xml")3. Dim xmlStream As New StreamReader(path)4. Dim ds As New DataSet()5. ds.ReadXml(xmlStream)6. xmlStream.Close()7. Return ds8.End Function
Csharp için DataSet nesnemizin satır sayısını döndürecek olan metodumuz.1.public int AtaturkCount()2.{3. DataSet ds = this.AtaturkBaglanti();4. int Count = ds.Tables["Ataturk"].Rows.Count;5. return Count;6.}
Vb.Net için DataSet nesnemizin satır sayısını döndürecek olan metodumuz.1.Public Function AtaturkCount() As Integer2. Dim ds As DataSet = Me.AtaturkBaglanti()3. Dim Count As Integer = ds.Tables("Ataturk").Rows.Count4. Return Count5.End Function
Csharp için Integer tipinde Random değer döndürecek metodumuz.1.public int RandomId(int Count)2.{3. int maxrand = Count;4. Random rnd = new Random();5. int rndNumber = rnd.Next(1,maxrand);6. return rndNumber;7.}
Vb.Net için Integer tipinde Random değer döndürecek metodumuz.1.Public Function RandomId(ByVal Count As Integer) As Integer2. Dim maxrand As Integer = Count3. Dim rnd As New Random()4. Dim rndNumber As Integer = rnd.Next(1, maxrand)5. Return rndNumber6.End Function
Csharp için Text’imizi almamızı sağlayacak olan metodumuz.01.public void AtaturkRandomText(int RandomId, Label LblAtaturk)02.{03. DataSet ds = this.AtaturkBaglanti();04. int Count = 0;05. for (int i = 0; i < ds.Tables["Ataturk"].Rows.Count; i++)06. {07. Count = int.Parse(ds.Tables["Ataturk"].Rows[i]["ID"].ToString());08. if (Count == RandomId)09. {10. LblAtaturk.Text = ds.Tables["Ataturk"].Rows[i]["Text"].ToString();11. break;12. }13. else14. {15. }16. }17.}
Vb.Net için Text’imizi almamızı sağlayacak olan metodumuz.01.Public Sub AtaturkRandomText(ByVal RandomId As Integer, ByVal LblAtaturk As Label)02. Dim ds As DataSet = Me.AtaturkBaglanti()03. Dim Count As Integer = 004. For i As Integer = 0 To ds.Tables("Ataturk").Rows.Count - 105. Count = Int32.Parse(ds.Tables("Ataturk").Rows(i)("ID").ToString())06. If Count = RandomId Then07. LblAtaturk.Text = ds.Tables("Ataturk").Rows(i)("Text").ToString()08. Return09. End If10. Next11.End Sub
Csharp için Page_Load isimli metodumuz.01.protected void Page_Load(object sender, EventArgs e)02.{03. if (!IsPostBack)04. {05. Ataturk Ata = new Ataturk();06. int AtaCount = Ata.AtaturkCount();07. int AtaturkRandomId = Ata.RandomId(AtaCount);08. Ata.AtaturkRandomText(AtaturkRandomId, LblAtaturk);09. }10.}
Vb.Net için Page_Load isimli metodumuz.1.Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs)Handles Me.Load2. Dim Ata As New Ataturk3. Dim AtaCount As Integer = Ata.AtaturkCount()4. Dim AtaturkRandomId As Integer = Ata.RandomId(AtaCount)5. Ata.AtaturkRandomText(AtaturkRandomId, LblAtaturk)6.End Sub
-
hoca c# pageload'da bi hata var gibime geldi ama yanılıo da olabilirim bi kontrol et istersen :|
-
tam olarak nerede sorun var bi sroun olduğunu sanmıyorum ama :S
-
eline sağlık hoca (:
Toplam Hit: 1891 Toplam Mesaj: 4