【问题标题】:Reloading the page runs my event handler again重新加载页面再次运行我的事件处理程序
【发布时间】:2011-11-11 07:55:08
【问题描述】:

我是新来的。我有个问题。

一切正常,但是当我单击 F5 时,它会刷新页面并再次运行代码。这意味着每次 F5 都会向数据库添加一条新记录。

这是我的代码,你有什么建议吗?

Imports System.Data.OleDb
Partial Class Default2
    Inherits System.Web.UI.Page

    Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim myConn As OleDbConnection
        Dim cmd As OleDbCommand
        Dim sqlstring, Fname, Lname, FATHname, Region As String

        Fname = TextBox1.Text
        Lname = TextBox2.Text
        FATHname = TextBox3.Text
        Region = TextBox4.Text

        myConn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\pcuser10.comm\Documents\vwd.data.accdb")

        myConn.Open()

        sqlstring = " INSERT INTO Table1 (FNAME, LNAME, FATHNAME, REGION) VALUES ('" + Fname + "','" + Lname + "','" + FATHname + "','" + Region + "')"

        cmd = New OleDbCommand(sqlstring, myConn)
        cmd.ExecuteNonQuery()

        myConn.Close()
    End Sub
End Class

【问题讨论】:

标签: asp.net vb.net postback visual-web-developer


【解决方案1】:

MainMa 在此论坛中针对相关问题提供了很好的回答。

page refresh is firing the event again

我没有什么可以补充的了,请查看:)

【讨论】:

  • 所以你从 Ziga 接了这个帖子 :) 很高兴能帮到你
【解决方案2】:

最简单的方法? 将所有控件封装到 UpdatePanel 中。

<body>
   <asp:UpdatePanel ID="upBody" runat="server">
      <ContentTemplate>

----------All your HTML controls here ----------

      </ContentTemplate>
   </asp:UpdatePanel>
</body>

好吧,我不推荐这个,但比你现在的情况好。

【讨论】:

  • 感谢您的帮助,我使用了 Response.Redirect(Request.RawUrl, true) ,它刷新了页面并清除了字段,解决了我的问题,再次感谢您
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
相关资源
最近更新 更多