为什么我的SQL数据库中有多个条目?

时间:2009-10-02 13:40:01

标签: asp.net sql

我正在查看应该完全相同的应用程序的两个版本。该应用程序是用VB.NET编写的ASP.NET。问题是在应用程序的本地构建中,对数据库的简单插入调用正在添加一个条目,但是在同一构建的远程部署中,相同的插入以某种方式发生了两次。

我知道这是一个非常模糊的问题。我真正想知道的是,如果有人在这里发现了类似的事情,并且由于数据库(或数据库中的表)的配置方式,问题是否存在。

4 个答案:

答案 0 :(得分:2)

页面是否具有AutoEventWireUp = True以及用于保存数据的按钮单击的Handles语句?

如果是,请尝试删除AutoEventWireUp = True

如果没有,请尝试找到将点击事件分配给按钮两次的其他方式

答案 1 :(得分:2)

我遇到的一件事是人们双击按钮。这将导致onclick事件被触发。

您是通过门户网站执行测试的人还是从客户那里收到反馈?

修改

我过去修复此问题的方法是创建一个自定义按钮,单击该按钮后会一直处于禁用状态,直到返回回发为止。以下是一个示例:http://www.codeproject.com/KB/aspnet/oneclickbutton.aspx

另一次我看到这种情况发生的情况是,如果有人在点击按钮后立即捣乱F5,并重新提交回发。

答案 2 :(得分:2)

您可以使用SQL事件探查器并分析幕后发生的事情。看看是否推出了相同的插件。

答案 3 :(得分:0)

使用SQL事件探查器的好建议。我之前从未使用过它,但它帮助我弄清楚了解发生了什么。我现在看到,当应该调用一次时,在其中使用insert语句调用的方法被调用两次。令人惊讶的是,它只发生在远程服务器而不是我们本地的服务器上。据我所知,唯一的区别是第一个方法调用用if语句包装,该语句检查在回发时传递的一些隐藏变量(该代码是旧的,老实说应该被删除)和第二个方法调用在buttonclick事件上被触发。

因此,当点击带有buttonclick事件处理程序的相同按钮时,隐藏的var通过远程服务器上的一个小JS片段设置为“1”。但是,它未设置为“1”,在本地服务器上默认为“0”。现在我想知道是否有一些Windows更新改变了客户端JS执行的方式(我正在访问这台机器并通过他们的服务器上的IE7运行我们的应用程序)与我们的结束。

对于冗长的解释感到抱歉,但我想不出更好的方法。