技术教程 全部教程 ASP教程 ASP.NET教程 C#.NET教程 VB.NET教程 UML教程 PHP教程 JSP教程 EJB教程 XML教程 LINUX教程 Script脚本 网页教程 图形处理
技术讨论区 ASP论坛 ASP.NET论坛 C#技术论坛 XML论坛 VBVC论坛 网页制作论坛
![](ASPcool_com--_net中即时消息发送的实现…….files/tom.gif)
|
|
.net中即时消息发送的实现…… |
作者: icefox www.ASPCool.com 时间:2001-12-27
23:07:37 阅读次数:5158
|
用了我一下午的时间终于写完并整理好了利用.net来发送即时消息的材料(当然了,还有上午的数据库设计:)
数据库设计: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("<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()
下面的代码是用来发送即时消息的页面,其中里面分了两个部分,一个是用来回复的,一个是用来专门发送的,两个的页面稍有区别,仔细看一下就会明白的:)
下面是所有的代码: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
页面部分: <%@ 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">发往:</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">内容:</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="发送" 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="继续发送…" 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">直接写入内容点击发送即可!</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">发信日期:</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">内容:</asp:Label>
</FONT> </form>
</body> </HTML>
以上代码在bata2环境下调试成功.
特别感谢:cheery_ke提供思路!
朋友一生一起走,多一个朋友就多一分收获! |
发表评论
注册新用户
|