| 网站镜像:电信 网通 | 加入收藏 | 设为首页

改写我前面的即时消息的发送,包含同时给多人发送信息!

  • 以前的的发送消息按钮事件改写如下:
    '/////////////////////转到发送即时消息页面
        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了:)