Bi okul sitesine online olanlar için chat scripti kurmak istedim ancak kaynak kod bulamadım kendim yaptım bişeyler. Belki başka arayan olur diye paylaşmak istedim.

Sadece mantığı anlatacağım ve Vb.net kodları paylaşcam.
İlk önce veritabanı tablomu oluşturdum.
Sohbet tablosunun alanları:
id otomatik sayı
gonderen metin
mesaj text
saat metin
şeklinde belirledim.

Safyama ise bir adet update panel ekledim ve bunun içerisine birtane Datalist ve birtane Timer yerleştirdim. Bunların dışında ise bir adet textbox ve bir buton yerleştirdim. Butona tıklandığında yazdığımız yazı veritabanımıza gircek. Sayfanın en altına yada en üstüne bir adette label ekliyoruz. Bu labele sessiondan yada cookie den aldığımız üye ismimizi atıyoruzki her defasında veritabnında üye adını arayıp işlemcimizi yormayalım.

İlk olarak Timer'ımızın çalışma aralığını 500 olarak belirleyelim (yarım saniye) bunu 1000 olarakta kullanabilirsiniz. Daha sonra timerla veri tabanına bağlanarak sohbet tablosuna eklenmiş son 20 veriyi ekranımıza taşıması için sorgumuzu yazıyoruz.

Ardından form load olayında session yada cooike den uye id numarasını alarak uyelerim tablomda ki konumunu sorguluyor ve elde ettiğim uye adı değerini eklediğim labelime aktarıyorum.

Buttonın clik olayında ise insert into deyimini kullanarak veritabanına yazılan mesaj kaydediyoruz. Kaydedilen mesajın hemen ekrana çıkması içinde komutu ExecuteNonQuery ile çalıştırdıktan hemen sonra timer ımızdaki sorgunun aynısı kullanarak datalistimize verileri çekiyoruz.

Umarım anlatabilmişimdir. Örnek kodlar aşağıda mevcuttur.
Bunu kendiniz geliştirebilirsiniz. Smile özellikleri katabilirsiniz.



    Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles sohbetyenile.Tick
        Dim c As New OleDbConnection
        c.ConnectionString = "Provider=microsoft.jet.oledb.4.0; Data Source=" & Server.MapPath("App_Data/veritabani.mdb")
        c.Open()
        Dim ds As New DataSet
        Dim adap As New OleDbDataAdapter("select top 20 * from sohbet order by id desc", c)
        adap.Fill(ds, "dol")
        DataList3.DataSource = ds.Tables(0)
        DataList3.DataBind()
        c.Close()
    End Sub

    Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim c As New OleDbConnection
        c.ConnectionString = "Provider=microsoft.jet.oledb.4.0; Data Source=" & Server.MapPath("App_Data/vdeposu.mdb")
        c.Open()
        Dim komut As New OleDbCommand("insert into sohbet(gonderen,mesaj,saat) values('" & uyeninadi.Text & "','" & TextBox3.Text & "','" & Now.TimeOfDay & "')", c)
        komut.ExecuteNonQuery()

        Dim ds As New DataSet
        Dim adap As New OleDbDataAdapter("select top 20 * from sohbet order by id desc", c)
        adap.Fill(ds, "dol")
        DataList3.DataSource = ds.Tables(0)
        DataList3.DataBind()
        c.Close()
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim couye As HttpCookie = Request.Cookies("coid")
        Dim giris As String
        If couye IsNot Nothing Then
            giris = couye("oid")
        ElseIf Session("ksbid") Then
            giris = Session("ksbid")

        Else
            Response.Redirect("uyegiris.aspx")
        End If
        Dim c As New OleDbConnection
        c.ConnectionString = "Provider=microsoft.jet.oledb.4.0; Data Source=" & Server.MapPath("App_Data/vdeposu.mdb")
        c.Open()
        Dim ds As New DataSet
        Dim adap As New OleDbDataAdapter("select * from uyelerim where id=" & giris, c)
        adap.Fill(ds, "ola")
        Dim kayit As DataRow = ds.Tables(0).Rows(0)

        uyeninadi.Text = kayit("uyeadialani").ToString
        c.Close()
    End Sub