找回密码
 注册
搜索
热搜: 回贴

.net中即时消息发送的实现

2009-12-13 12:57| 发布者: admin| 查看: 31| 评论: 0|原作者: 云天河

○数据库设计:info表:idfromst......


数据库设计:info表:id fromstu_id tostu_id content term
其中id是主键,fromstu_id是发送信息的用户的学号(这是和我做的学友录连在一起的),tostu_id是接受信息的用户的学号,content是消息的内容,term是判断是否为新消息。
下面的代码家在校友录中的if not ispostback中
'/////////////////////判断是否有新留言,将自动弹出页面
这里还要将页面的刷新时间设置一下,以便可以循环的读取信息。
Dim mysql As String = "select * from info where tostu_id=@myid and term=1"
Dim comm As SqlCommand = New SqlCommand(mysql, conn)
comm.Parameters.Add(New SqlParameter("@myid", SqlDbType.Int, 4))
comm.Parameters("@myid").Value = Session("stu_id")
Dim dr As SqlDataReader
conn.Open()
dr = comm.ExecuteReader
If dr.Read Then
Response.Write("")
End If
dr.Close()
comm.Cancel()

下面的代码是用来发送即时消息的页面,其中里面分了两个部分,一个是用来回复的,一个是用来专门发送的,两个的页面稍有区别,仔细看一下就会明白的:)

下面是所有的代码:codebehind部分
Public Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Dim tostu_id As String = Request.QueryString("tostu_id")
If tostu_id = "" Then
'//////////////////当回复留言时
Dim sql As String = "select a.*,b.nick from info a,pwd b where a.fromstu_id=b.stu_id and a.tostu_id='" & Session("stu_id") & "' and a.term=1"
Dim comm As SqlCommand = New SqlCommand(sql, conn)
Dim dr As SqlDataReader
conn.Open()
dr = comm.ExecuteReader
While dr.Read
Label3.Text = dr.Item("nick")
Label4.Text = dr.Item("tim")
Label5.Text = dr.Item("content")
TextBox1.Text = dr.Item("nick")
TextBox3.Text = dr.Item("fromstu_id")
TextBox1.Enabled = False
Label8.Visible = False
End While
dr.Close()
comm.Cancel()
'//////////////////////更新留言使留言属性为已阅读过
Dim sql_1 As String = "update info set term=0 where tostu_id='" & Session("stu_id") & "' and term=1 and tim='" & Label4.Text & "'"
comm = New SqlCommand(sql_1, conn)
comm.ExecuteNonQuery()
Else
'////////////////////当发送留言时
Dim mysql As String = "select nick from pwd where stu_id='" & tostu_id & "'"
Dim comm As SqlCommand = New SqlCommand(mysql, conn)
Dim dr As SqlDataReader
conn.Open()
dr = comm.ExecuteReader
While dr.Read
TextBox1.Text = dr.item("nick")
End While
TextBox1.Enabled = False
Label3.Text = ""
Label4.Text = ""
Label5.Visible = False
Label8.Visible = True
Label6.Visible = False
Label7.Visible = False
Label9.Visible = False
dr.close()
End If
End If
End Sub

'/////////////////书写提交消息事件
Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim tostu_id As String = Request.QueryString("tostu_id")
If tostu_id = "" Then
'/////////////////////////当回复留言时
conn.Open()
Dim sql As String = "insert into info(fromstu_id,tostu_id,content,term,tim) values(@fromstu_id,@tostu_id,@content,@term,@tim)"
Dim comm As SqlCommand = New SqlCommand(sql, conn)
comm.Parameters.Add(New SqlParameter("@fromstu_id", SqlDbType.Int, 4))
comm.Parameters("@fromstu_id").Value = Session("stu_id")

comm.Parameters.Add(New SqlParameter("@tostu_id", SqlDbType.Int, 4))
comm.Parameters("@tostu_id").Value = TextBox3.Text

comm.Parameters.Add(New SqlParameter("@content", SqlDbType.VarChar, 200))
comm.Parameters("@content").Value = TextBox2.Text

comm.Parameters.Add(New SqlParameter("@term", SqlDbType.Int, 4))
comm.Parameters("@term").Value = "1"

comm.Parameters.Add(New SqlParameter("@tim", SqlDbType.Char, 20))
comm.Parameters("@tim").Value = Date.Now
comm.ExecuteNonQuery()
TextBox2.Text = ""
Else
'/////////////////////////当发送留言时
conn.Open()
Dim sql As String = "insert into info(fromstu_id,tostu_id,content,term,tim) values(@fromstu_id,@tostu_id,@content,@term,@tim)"
Dim comm As SqlCommand = New SqlCommand(sql, conn)
comm.Parameters.Add(New SqlParameter("@fromstu_id", SqlDbType.Int, 4))
comm.Parameters("@fromstu_id").Value = Session("stu_id")

comm.Parameters.Add(New SqlParameter("@tostu_id", SqlDbType.Int, 4))
comm.Parameters("@tostu_id").Value = tostu_id

comm.Parameters.Add(New SqlParameter("@content", SqlDbType.VarChar, 200))
comm.Parameters("@content").Value = TextBox2.Text

comm.Parameters.Add(New SqlParameter("@term", SqlDbType.Int, 4))
comm.Parameters("@term").Value = "1"

comm.Parameters.Add(New SqlParameter("@tim", SqlDbType.Char, 20))
comm.Parameters("@tim").Value = Date.Now
comm.ExecuteNonQuery()
TextBox2.Text = ""
End If
Response.Write("")
End Sub

'////////////////////返回继续发送
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Response.Redirect("boaman.aspx")
End Sub
End Class


页面部分:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="info.aspx.vb" Inherits="_99re1.info"%>














发往:
内容:



Label
Label
Label
来自:

直接写入内容点击发送即可!
发信日期:
内容:




以上代码在bata2环境下调试成功.

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 05:30 , Processed in 0.105579 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部