C#Asp.Net应用程序在超时后创建重复的SQL记录

C#Asp.Net应用程序在超时后创建重复的SQL记录,c#,sql,asp.net,duplicates,C#,Sql,Asp.net,Duplicates,我希望我的问题不要太模糊,但我已经抓住救命稻草一段时间了 我有一个简单的ASP.Net应用程序,允许用户添加、修改或删除客户记录。大约一周一次,我收到一份用户报告,“我修改了一条记录,点击了save,并得到了一个SQL连接超时的错误。当我试图返回该记录时,我发现有一条重复的记录。” 我可以确认结果-我得到的重复记录除了自动递增的ID字段外都是相同的。这些复制品很容易清理,但我无法找出原因。触发重复项的方法很简单-它使用SqlConnection和带有CommandText的SqlCommand,

我希望我的问题不要太模糊,但我已经抓住救命稻草一段时间了

我有一个简单的ASP.Net应用程序,允许用户添加、修改或删除客户记录。大约一周一次,我收到一份用户报告,“我修改了一条记录,点击了save,并得到了一个SQL连接超时的错误。当我试图返回该记录时,我发现有一条重复的记录。”

我可以确认结果-我得到的重复记录除了自动递增的ID字段外都是相同的。这些复制品很容易清理,但我无法找出原因。触发重复项的方法很简单-它使用SqlConnection和带有CommandText的SqlCommand,如:

"UPDATE Accounts SET Param1 = @Param1, Param2 = @Param2... WHERE CustomerNumber like '" + (string)Session["CustomerNumber"] + "';"
SQL错误或其他,据我所知,这不应该导致重复。我做了一个“查找所有->整个解决方案”来查找“插入帐户”,并且只找到一个创建帐户记录的位置。这是在不同的页面上,并将客户编号设置为随机值,这与我获得的重复项行为不一致

我还仔细检查了数据库中的触发器或存储过程——没有


我甚至不知道我的代码应该发布哪一部分来寻找解决方案。。。是否有人有其他调试过程的想法可以尝试,或者有其他人经历过这种情况?我正在使用Azure Web应用程序和Azure SQL数据库,但我认为在迁移到Azure之前,在IIS和SQL Server 2008中操作时也存在此漏洞。提前感谢您的任何建议

用户是否双击提交按钮?如何生成“自动递增的ID字段”?它是标识列吗?为什么在更新查询中使用“like”而不是“=”?是否可能在原始查询中使用“%”,因此如果您的客户编号为100,则此更新将使用包含字符串“100”的ID更新所有客户?@David-我考虑过同样的问题,这是可能的,但我仍然不知道这将如何触发新记录。。。我没有用其他方法处理双击,但我也没有做任何事情来过滤掉它们。@user957902-是的,它是一个标识列。