| 
| 技术资料  > .Net专区 > Asp.Net开发 : 即时消息的发送,包含同时给多人发送信息 |  
即时消息的发送,包含同时给多人发送信息 March 25,2004 |  
以前的的发送消息按钮事件改写如下: 
'/////////////////////转到发送即时消息页面 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
        Dim i, j As Integer 
        j = 0 
        Dim tostu_id As String = "" 
        For i = 0 To mycheck.Items.Count - 1 
            If mycheck.Items(i).Selected Then 
                '////////////////////////限制发送条数 
                j = j + 1 
                If j < 6 Then 
                    '/////////////////////参数构造 
                    tostu_id = tostu_id & CheckBoxList1.Items(i).Text & "@" 
                Else 
                    Label2.Visible = True 
                    Label2.Text = "一次最多能给五个用户发送信息!" 
                    Return 
                    'Response.Write("<script language=JavaScript>window.open('info.aspx?tostu_id=' & CheckBoxList1.Items(i).Text,'','height=330,width=560,status=no,location=no,toolbar=no,directories=no,menubar=no')</script>") 
                End If 
            End If 
        Next i 
        Response.Redirect("info.aspx?tostu_id=" & tostu_id) 
    End Sub 
 
 
 
这里发送信息的页面由于修改的比较多,所以把全部代码全都抓来了,呵呵:) 
codebebind部分: 
Imports System.Data 
Imports System.Data.SqlClient 
Public Class info 
    Inherits System.Web.UI.Page 
    Protected WithEvents Label1 As System.Web.UI.WebControls.Label 
    Protected WithEvents Label2 As System.Web.UI.WebControls.Label 
    Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox 
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button 
    Protected WithEvents Button2 As System.Web.UI.WebControls.Button 
    Protected WithEvents Label3 As System.Web.UI.WebControls.Label 
    Protected WithEvents Label4 As System.Web.UI.WebControls.Label 
    Protected WithEvents Label5 As System.Web.UI.WebControls.Label 
    Protected WithEvents Label6 As System.Web.UI.WebControls.Label 
            Protected WithEvents TextBox3 As System.Web.UI.WebControls.TextBox 
    Protected WithEvents Image3 As System.Web.UI.WebControls.Image 
    Protected WithEvents Label8 As System.Web.UI.WebControls.Label 
    Protected WithEvents Label7 As System.Web.UI.WebControls.Label 
    Protected WithEvents Label9 As System.Web.UI.WebControls.Label 
    Protected WithEvents Label10 As System.Web.UI.WebControls.Label 
    Protected WithEvents Button3 As System.Web.UI.WebControls.Button 
    Protected WithEvents Label11 As System.Web.UI.WebControls.Label 
            Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox 
 
#Region " Web Form Designer Generated Code " 
 
    'This call is required by the Web Form Designer. 
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() 
 
    End Sub 
 
    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 
        'CODEGEN: This method call is required by the Web Form Designer 
        'Do not modify it using the code editor. 
        InitializeComponent() 
    End Sub 
 
#End Region 
    Dim conn As SqlConnection = New SqlConnection("server=lixinri;uid=sa;pwd=;database=99re1") 
    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") 
            Dim splitname() As String 
'///////////这里用了Split函数将传过来的参数取出 
            splitname = Split(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 
                    Label11.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 i As Integer 
                For i = 0 To UBound(splitname) - 1 
                    Dim mysql As String = "select nick from pwd where stu_id='" & splitname(i) & "'" 
                    Dim comm As SqlCommand = New SqlCommand(mysql, conn) 
                    Dim dr As SqlDataReader 
                    If i = 0 Then 
                        conn.Open() 
                        dr = comm.ExecuteReader 
                        If dr.Read Then 
                            TextBox1.Text = Trim(dr.item("nick")) & ";" 
                        End If 
                        control() 
                        dr.close() 
                    Else 
                        dr = comm.ExecuteReader 
                        If dr.Read Then 
                            TextBox1.Text = TextBox1.Text & Trim(dr.item("nick")) & ";" 
                        End If 
                        control() 
                        dr.close() 
                    End If 
                Next i 
            End If 
        End If 
    End Sub 
     '/////////////////control事件,没有什么实际意义,使代码简单罢了。 
    Sub control() 
        TextBox1.Enabled = False : Label3.Text = "" : Label4.Text = "" : Label5.Visible = False 
        Label8.Visible = True : Label6.Visible = False : Label7.Visible = False : Label9.Visible = False 
        Button3.Visible = False : Label11.Visible = True 
        Label11.Text = "<a href=board.aspx><<<返回学友录</a>" 
    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") 
        Dim splitname() As String 
        splitname = Split(tostu_id, "@") 
        If tostu_id = "" Then 
            '/////////////////////////当回复留言时 
            If TextBox2.Text = "" Or TextBox2.Text = " " Then 
                Label10.Visible = True 
                Label10.Text = "消息不能为空!" 
                Return 
            Else 
                Label10.Visible = False 
                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 = "" 
            End If 
        Else 
            '/////////////////////////当发送留言时 
      If TextBox2.Text = "" Or TextBox2.Text = " " Then 
                Label10.Visible = True 
                Label10.Text = "消息不能为空!" 
                Return 
            Else 
          '////////////////插入i条数据 
                Dim i As Integer 
                For i = 0 To UBound(splitname) - 1 
                    Label10.Visible = False 
                    If i = 0 Then 
                        conn.Open() 
                    Else 
                    End If 
                    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 = splitname(i) 
 
                    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 = "" 
                Next i 
            End If 
        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 
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
        Response.Write("<script language=javascript>window.close()</script>") 
    End Sub 
End Class 
 
 
感谢laodeng了:) 
         |  
 
 |