插入函数被多次调用

时间:2011-07-10 10:45:50

标签: asp.net mysql vb.net

我有一个网站,人们互相发送消息 最近我注意到有时同一条消息不止一次发送 例如,消息在三秒内发送四次或在一秒内发送两次 一旦用户点击发送消息的按钮,我不明白这是怎么发生的 因此,所有窗口切换和消息显示“邮件已成功发送”。 我检查过,如果用户在发送消息后刷新页面,那么真的会再次发送消息。 但我不认为是这种情况,因为消息会在一秒钟内发送两次。 我在vb.net写作并使用mysql数据库。 也许这与db的队列有关,我不知道。 我需要知道在哪里看 希望得到你的帮助

以下是代码:

函数调用: 调用GlobalFunction.update_mailbox_table(user_id,receiverId,txtMessage.Text,private_picture)

插入功能

Public Shared Sub update_mailbox_table(ByVal user_id As Integer, ByVal receiverId As Integer, ByVal message As String, ByVal privatePicture As Integer)

    ' update mailbox table
    Dim connString As String = ConfigurationManager.ConnectionStrings("mysql_ConnString").ConnectionString
    Using mysqlconn As New MySqlConnection(connString)
        Dim sqlCommand As String = "INSERT INTO mailbox_table (FromId,Message,ToId,SendingDate,MsgStatus,PrivatePicture) VALUES (@FromId,@Message,@ToId,@SendingDate,@MsgStatus,@PrivatePicture)"
        Dim mysqlcmd As New MySqlCommand(sqlCommand, mysqlconn)
        Try
            mysqlconn.Open()
            mysqlcmd.Parameters.AddWithValue("@FromId", user_id)
            mysqlcmd.Parameters.AddWithValue("@Message", message)
            mysqlcmd.Parameters.AddWithValue("@ToId", receiverId)
            mysqlcmd.Parameters.AddWithValue("@SendingDate", Date.Now)
            mysqlcmd.Parameters.AddWithValue("@MsgStatus", 0)
            mysqlcmd.Parameters.AddWithValue("@PrivatePicture", privatePicture)
            mysqlcmd.ExecuteNonQuery()
        Catch ex As Exception
            sendToLog(ex, "problem to update mailbox table")
        End Try
    End Using
End Sub

2 个答案:

答案 0 :(得分:0)

问题不在数据库代码中,我的通灵调试功能告诉我,你的用户双击你的提交按钮四次。

答案 1 :(得分:0)

您是否正在使用Javascript来显示消息客户端(即消息发送前 消息),或者您是否在发送消息后重新加载页面时显示消息?

如果您没有使用客户端脚本隐藏按钮,则用户可以在页面重新加载之前轻松单击几次。每次单击都会向服务器发送请求,但浏览器仅显示最后一次单击的响应。