c# - 为什么同一存储过程调用会被多次触发

标签 c# javascript sql

在我的网页中,当我添加记录时,某些记录会被添加多次。然后我发现同一个数据库调用被发送多次(在分析时)。不仅仅是那个SP,还有其他一些SP。但他们只是返回数据。所以他们不会造成任何问题。但这种行为仅保留在生产站点中。不在开发站点中。因此,很难追踪 SP 调用的来源。我检查了循环和其他内容,但没有。

这是 JavaScript 文件中的 HTTP 请求:

var strParams = "?";
strParams += "Process="           + "assignQuestion";                               
...
strParams += "&measure="          + measure;

xmlAssignQuestion = new ActiveXObject("Microsoft.XMLHTTP");
xmlAssignQuestion .onreadystatechange = assignQuestionBack;
xmlAssignQuestion .open("POST", "AssignQuestion.reliability" + strParams, false);
xmlAssignQuestion .send();
<小时/>

这是 HTTP 处理程序

if (process.Equals("assignQuestion"))
{
    int measure = int.Parse(context.Request.QueryString["measure"]);

    string ret = DBClasses.AssignToGroup.storeQuestionp(measure);

    if (long.Parse(ret) == -1)
        context.Response.Write("f");
    else context.Response.Write(ret);

    context.Response.Flush();
    context.Response.End(); 
}

提前致谢!

最佳答案

为了防止生产数据损坏,我会向适当的列组合添加唯一约束,以确保不会发生重复。添加约束后,下次客户端操作尝试插入重复项时,他们将收到错误,这将有助于识别导致其发生的情况。

关于c# - 为什么同一存储过程调用会被多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9677329/

相关文章:

javascript - 允许正则表达式中的数字包括负数

javascript - 使用 Jquery 通过鼠标单击进行单选,通过 CTRL + 单击 div 内的图像进行多选

c# - 无法将数据更新到 SQL 表中

sql - 一个关于表连接的sql问题

c# - 如何从表名指定为 SqlParameter 的表中进行选择?

c# - Linq To Sql 从函数返回为 IQueryable<T>

c# - Entity Framework 'database first' 在 Visual Studio 2017 中的替代品是什么

javascript - 下面的脚本中缺少 ) 参数,有什么建议吗?为什么?

mysql - 从 mysql 到 Yii 语法

c# 检查用户是否是组的成员?