用了我一下午的時(shí)間終于寫完并整理好了利用.net來發(fā)送即時(shí)消息的材料(當(dāng)然了,還有上午的數(shù)據(jù)庫設(shè)計(jì):) 數(shù)據(jù)庫設(shè)計(jì):info表:id fromstu_id tostu_id content term 其中id是主鍵,fromstu_id是發(fā)送信息的用戶的學(xué)號(這是和我做的學(xué)友錄連在一起的),tostu_id是接受信息的用戶的學(xué)號,content是消息的內(nèi)容,term是判斷是否為新消息。 下面的代碼家在校友錄中的if not ispostback中 '/////////////////////判斷是否有新留言,將自動(dòng)彈出頁面 這里還要將頁面的刷新時(shí)間設(shè)置一下,以便可以循環(huán)的讀取信息。 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("<script language=JavaScript>window.open('info.aspx','','height=330,width=560,status=no,location=no,toolbar=no,directories=no,menubar=no')</script>") End If dr.Close() comm.Cancel() 下面的代碼是用來發(fā)送即時(shí)消息的頁面,其中里面分了兩個(gè)部分,一個(gè)是用來回復(fù)的,一個(gè)是用來專門發(fā)送的,兩個(gè)的頁面稍有區(qū)別,仔細(xì)看一下就會(huì)明白的:) 下面是所有的代碼: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 '//////////////////當(dāng)回復(fù)留言時(shí) 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 '////////////////////當(dāng)發(fā)送留言時(shí) 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 '/////////////////////////當(dāng)回復(fù)留言時(shí) 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 '/////////////////////////當(dāng)發(fā)送留言時(shí) 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('發(fā)送成功!')</script>") End Sub '////////////////////返回繼續(xù)發(fā)送 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"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title></title> <meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR"> <meta content="Visual Basic 7.0" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </HEAD> <body background="image/bg.gif" MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <FONT face="宋體"> <asp:image id="Image3" style="Z-INDEX: 111; LEFT: 141px; POSITION: absolute; TOP: 312px" runat="server" Width="221px" Height="98px" ImageUrl="image/99re1-1.gif"></asp:image> <asp:textbox id="TextBox1" style="Z-INDEX: 101; LEFT: 73px; POSITION: absolute; TOP: 123px" runat="server" BorderColor="Navy" BorderWidth="1px"></asp:textbox> <asp:label id="Label1" style="Z-INDEX: 102; LEFT: 26px; POSITION: absolute; TOP: 127px" runat="server" Width="42px" Height="18px" Font-Size="X-Small" ForeColor="Navy" Font-Bold="True">發(fā)往:</asp:label> <asp:label id="Label2" style="Z-INDEX: 103; LEFT: 26px; POSITION: absolute; TOP: 156px" runat="server" Font-Size="X-Small" ForeColor="Navy" Font-Bold="True">內(nèi)容:</asp:label> <asp:textbox id="TextBox2" style="Z-INDEX: 104; LEFT: 73px; POSITION: absolute; TOP: 154px" runat="server" TextMode="MultiLine" Width="449px" Height="74px" BorderColor="Navy" BorderWidth="1px" MaxLength="200"></asp:textbox> <asp:button id="Button1" style="Z-INDEX: 105; LEFT: 357px; POSITION: absolute; TOP: 252px" runat="server" Width="50px" Height="20px" Text="發(fā)送" BorderColor="Navy" BorderWidth="1px" BackColor="#FFE0C0"></asp:button> <asp:button id="Button2" style="Z-INDEX: 106; LEFT: 176px; POSITION: absolute; TOP: 253px" runat="server" Width="87px" Height="20px" Text="繼續(xù)發(fā)送…" BorderColor="Navy" BorderWidth="1px" BackColor="#FFE0C0"></asp:button> <asp:label id="Label3" style="Z-INDEX: 107; LEFT: 75px; POSITION: absolute; TOP: 10px" runat="server" Width="135px" Height="6px" Font-Size="Small">Label</asp:label> <asp:label id="Label4" style="Z-INDEX: 108; LEFT: 300px; POSITION: absolute; TOP: 9px" runat="server" Width="219px" Height="13px" Font-Size="Small">Label</asp:label> <asp:label id="Label5" style="Z-INDEX: 109; LEFT: 73px; POSITION: absolute; TOP: 40px" runat="server" Width="447px" Height="71px" Font-Size="X-Small" BorderColor="SlateGray" BorderWidth="1px">Label</asp:label> <asp:label id="Label6" style="Z-INDEX: 110; LEFT: 26px; POSITION: absolute; TOP: 12px" runat="server" Font-Size="X-Small" ForeColor="Red" Font-Bold="True">來自:</asp:label> <asp:TextBox id="TextBox3" style="Z-INDEX: 112; LEFT: 247px; POSITION: absolute; TOP: 122px" runat="server" Visible="False"></asp:TextBox> <asp:Label id="Label8" style="Z-INDEX: 113; LEFT: 116px; POSITION: absolute; TOP: 55px" runat="server" Height="33px" Width="327px" Font-Bold="True" ForeColor="Navy" Font-Size="Large" Font-Names="方正姚體" Font-Underline="True">直接寫入內(nèi)容點(diǎn)擊發(fā)送即可!</asp:Label> <asp:Label id="Label7" style="Z-INDEX: 114; LEFT: 225px; POSITION: absolute; TOP: 12px" runat="server" Height="15px" Width="71px" Font-Bold="True" ForeColor="Red" Font-Size="X-Small">發(fā)信日期:</asp:Label> <asp:Label id="Label9" style="Z-INDEX: 115; LEFT: 25px; POSITION: absolute; TOP: 41px" runat="server" Font-Bold="True" ForeColor="Red" Font-Size="X-Small">內(nèi)容:</asp:Label> </FONT> </form> </body> </HTML> 以上代碼在bata2環(huán)境下調(diào)試成功. 特別感謝:cheery_ke提供思路! 朋友一生一起走,多一個(gè)朋友就多一分收獲!
|