.net中即時消息發送的實現
用了我一下午的時間終於寫完並整理好了利用.net來發送即時消息的材料(當然了,還有上午的數據庫設計:)
數據庫設計:info表:idfromstu_idtostu_idcontentterm
其中id是主鍵,fromstu_id是發送信息的用戶的學號(這是和我做的學友錄連在一起的),tostu_id是接受信息的用戶的學號,content是消息的內容,term是判斷是否為新消息。
下麵的代碼家在校友錄中的ifnotispostback中
|
下麵的代碼是用來發送即時消息的頁麵,其中裏麵分了兩個部分,一個是用來回複的,一個是用來專門發送的,兩個的頁麵稍有區別,仔細看一下就會明白的:)
下麵是所有的代碼: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("<script language=javascript>alert('發送成功!')</script>")
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
頁麵部分:
|
最後更新:2017-04-02 00:06:32