ASP.Net ile Ziyaretçi Defteri Uygulaması

Yağız Gönüler tarafından yayınlanmıştır 13. Ağustos 2008 12:27

Ziyaretçi defteri dendiği zaman aklımıza hemen ürkütücü repeater ve database işlemleri gelmesin. Zira ziyaretçi defterinin yapımının ne kadar kolay olduğunu bu makeledeki basit bir örnekle rahatlıkla çözebileceksiniz.

 

Öncelikle bu makalede visualbasic.net dilini ve Microsoft Access veritabanını kullandığımı belirtmemde fayda var. Şimdi veritabanımızı hazırlayalım ve daha sonra tasarım bölümümüze geçelim.

 



Resimden de anlaşıldığı gibi veritabanımızın ismi zDefteri. İçerisinde tblDefter isminde bir tablo yer alıyor. Bu tablonun içinde ID (Otomatik sayı), Isim (Metin), Mail (Metin), Mesaj (Not) ve Zaman (Tarih/Saat) alanları bulunuyor. Isim alanında kullanıcı adını, mail alanında kullanıcının mail adresini, mesaj alanında kullanıcının yazısını ve zaman alanında mesajın atıldığı tarihi tutacağız.

 

Şimdi ise visual studio yardımıyla bir asp.net projesi açalım ve default.aspx sayfasının design bölümünde aşağıdaki görünümü oluşturalım:

 



Görüldüğü gibi Button, Textbox, Label, RequiredFieldValidator ve Repeater kullandım. Bu tasarımı hazırlamanızda bir zorluk çekeceğinizi sanmıyorum ancak repeater’in bağlı bulunduğu fieldset ile beraber tasarım sayfasındaki kodunu aşağıya eklemekte fayda görüyorum.

<fieldset class="text" id="flsYorum" title="Yorumlar" style="FONT-SIZE: 8pt; Z-INDEX: 101; LEFT: 488px; WIDTH: 376px; COLOR: black; FONT-FAMILY: Arial; POSITION: absolute; TOP: 24px; HEIGHT: 8px; TEXT-ALIGN: left; TEXT-DECORATION: none"

runat="server"><LEGEND>Yorumlar</LEGEND><asp:repeater id="repeatermsj" runat="server">

<ItemTemplate>

&nbsp;&nbsp;İsim : <a href='mailto:<%# Container.DataItem ("Mail") %>'><font color="#000000">

<%# Container.DataItem ("Isim") %>

</font></a>| Zaman :

<%#Container.DataItem("Zaman")%>

<br />

&nbsp;

<%#Container.DataItem("Mesaj")%>

&nbsp;<br />

<hr align="center" style="width: 370px; background-color: #ff0066" />

</ItemTemplate>

</asp:repeater></fieldset>

 

Şimdi kod bölümüne geçiyoruz. Amacımız veritabanına daha önce girilmiş yorum varsa onları getirmek ve gönder buttonuna basıldığında yeni yorum yazdırmak. Kodların tüm açıklamaları satır aralarında yer alıcaktır.

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

 

'sayfamızın yüklenme aşamasındaki işlemlerını gerçekleştiriyoruz

'öncelikle microsoft access veritabanımıza bağlanıyoruz

Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & Server.MapPath("zDefteri.mdb"))

'bağlantımızı açıyoruz

con.Open()

'kayıt sayısı isimli değişkenimizi tblDefter tablosundaki ID alanına atıyoruz

Dim KayitSayisi As String = "Select Count(ID) From tblDefter"

Dim com As New OleDbCommand(KayitSayisi, con)

'kayıtlarımızı okutuyoruz

Dim Kayit As Integer = com.ExecuteScalar

'1den fazla kayıt varsa labelda toplam kaç mesaj olduğunu yazdırıyoruz, yoksa kayıt yok mesajını labela yazdırıyoruz

If Kayit > 0 Then

lblKayit.Text = Kayit & " adet kayıt var"

Else

lblKayit.Text = "Henüz mesaj girilmemiş."

End If

 

''ID tablosuna baglanip mesajları cekiyoruz ve yazdırıyoruz

Dim strdb As String = "Select * From tblDefter Order by ID Desc"

Dim com2 As New OleDbCommand(strdb, con)

Dim dbreader As OleDbDataReader

dbreader = com2.ExecuteReader

repeatermsj.DataSource = dbreader

repeatermsj.DataBind()

con.Close()

End Sub

 

Private Sub cmdGonder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGonder.Click

 

'Bu bölümde gönder buttonuna basıldıgında mesaj yollarken gerçekleşen işlemleri ayarlıyacagız

'bir connection oluşturup veritabanımıza baglanıyoruz

Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & Server.MapPath("zDefteri.mdb"))

'baglantımızı acıyoruz

con.Open()

'veritabanımızdaki ilgili tablomuzun ilgili alanlarıyla, tasarımımızdaki textboxların ilgili olanlarını denkleştiriyoruz

Dim strdb As String = "Insert Into tblDefter(Isim,Mail,Mesaj,Zaman) Values ('" & txtisim.Text & "','" & txtmail.Text & "','" & txtyorum.Text & "','" & Now() & "')"

Dim com As New OleDbCommand(strdb, con)

'mesajı yollarkenki yazdırma işlemini gerçekleştiriyoruz

com.ExecuteNonQuery()

'bağlantımızı kapatıyoruz

con.Close()

'işlemimiz tamamlandıktan sonra default.aspx sayfamıza geri döndürüyoruz

Response.Redirect("Default.aspx")

End Sub

 

End Class

 

 

 

Tüm bu işlemlerden sonra programımızın işleyişini kontrol edebilirsiniz. Ben bir yorum yazıp gönderiyorum ve sonuç aşağıdaki gibi çıkıyor. Kodlarınızda hatalı bir düzenleme yapmadıysanız, yukarıdaki kodların düzgün çalışacağını belirtebilirim.

 

 

İşlemi gerçekleştirirken isim yada mail girmediğinizde RequiredFieldValidator’lerin çalıştığını göreceksiniz.

 

Umarım faydalı bir makale olmuştur. Kodlarda sorun olmadığını görmek için tekrar tekrar test ettim. Eğer tüm bunlara rağmen bir problem çıkıyorsa benimle mail adresimden iletişime her daim geçebilirsiniz.

 

Farklı makalelerde tekrar görüşmek üzere, iyi çalışmalar.

 

1 kişi tarafından 4.0 olarak değerlendirildi

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler: ,

Software | Web | Articles

Yorum ekle


(Gravatar simgesini gösterecek)  

  Country flag

biuquote
  • Yorum
  • Canlı önizleme
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.
Sitedeki kod ve tasarım değişiklikleri ise Yağız Gönüler tarafından geliştirilmiştir.
2008 © www.yagizgonuler.com

Şifahen değil acilen!

Anket

Yazılım geliştirirken en keyif aldığınız alan hangisi?




Sonuçlar

Son Yorumlar

Comment RSS

Calendar

<<  Ocak 2009  >>
PaSaÇaPeCuCuPa
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

Yazıları geniş takvimde göster

Ne Dinliyorum?

Kirpi - TearDrop (11 saat önce)
Kirpi - My Name Is Kirpi (12 saat önce)
Kirpi - The Song (12 saat önce)
Kirpi - Spell (12 saat önce)
Huseyin Karadayi - Bonus Track Funk Clarinet (String Mix) (12 saat önce)
Huseyin Karadayi - Sacred Gate (12 saat önce)
Huseyin Karadayi - Exotica (12 saat önce)
Huseyin Karadayi - Take Me Away / No Time To Waste (Vocal By Melis Sökmen) (12 saat önce)
Huseyin Karadayi - Eyes Don't Lie (Duet By Enoi & Funky C) (12 saat önce)
Huseyin Karadayi - This Way (Usy Groove) (12 saat önce)

Ne Okuyorum?


Haftanın Sözü


"Sukûnetim asaletimdendir;
Lâkin her lâfa verilecek bir cevabım var.
Bir bakarım lâf lâfmı diye,
Birde bakarım söyleyen adammı diye.."

Mevlânâ Celaleddin-i Belhi Rumi
(1207-1273)

Adanmış Hayatlar

"Zaten aşklar hep yalan dolan,
Sonu hep acı hüsran.
Bize her sevdadan geriye kalan
Sadece Galatasaray..
"

Son Dakika

İstanbul'da Hava

ISTANBUL

Ziyaretçi Sayısı

Ziyaretçi Sayısı