c#如何从根本上防止重复提交相同的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何从根本上防止重复提交相同的数据相关的知识,希望对你有一定的参考价值。

C#禁止重复提交
1:连续2次提交 Button1.Attributes.Add("onclick", "this.value='正在提交中,请等待……';this.disabled=true;" + this.GetPostBackEventReference(Button1));

2:刷新提交: Response.Write(" <script language=javascript> alert( '采购成功 ');window.location.href=window.location.href; </script> ");

也可以做成自定义控件:
/**//// <summary>
/// 只能提交一次的按钮
/// </summary>
public class ButtonSubmitOnce : Button

private string _textonclick = "处理中,请稍后。。。";
private string _clientcheck;

protected override void Render(htmlTextWriter writer)

StringBuilder temp = new StringBuilder();

temp.Append(this.OnClientClick);

if (!string.IsNullOrEmpty(_clientcheck)) temp.Append("if(!").Append(_clientcheck).Append(") return false;");

if (!string.IsNullOrEmpty(_textonclick)) temp.Append("this.value=\"").Append(_textonclick).Append("\";");

//this is for the ff
temp.Append("if(null==window.onunload) window.onunload = function();");

temp.Append("this.disabled = true;").Append(Page.GetPostBackEventReference(this));

this.OnClientClick = temp.ToString();

base.Render(writer);


public string TextOnClick

set _textonclick = value;


public string ClientCheck

set _clientcheck = value;

参考技术A 防止按钮重复按,就开始设置为false,完成方法后true。如果是数据库,就判断数据是否存在,存在就不提交

1024技术干货 ~ Java如何防止接口重复提交

    正如本文标题所言,今天我们来聊一聊在Java应用系统中如何防止接口重复提交;简单地讲,这其实就是“重复提交”的话题,本文将从以下几个部分展开介绍: 

    1.“重复提交”简介与造成的后果

    2.“防止接口重复提交”的实现思路

    3.“防止接口重复提交”的代码实战

    一、“重复提交”简介与造成的后果

    对于“重复提交”,想必各位小伙伴都知晓它的意思,简单的理解,它指的是前端用户在间隔很短的时间周期内对同一个请求URL发起请求,导致前端开发者在很短的时间周期内将同一份数据(请求体)提交到后端相同的接口 多次,最终数据库出现多条主键ID不一样而其他业务数据几乎一毛一样的记录;

    仔细研究上述整个过程,会发现如果发起的多次请求的时间间隔足够短,即时间趋向于无穷小 时,其过程可以归为“多线程并发导致并发安全”的问题范畴;而对于“并发安全”的话题,debug早在此前自己录制的课程以及之前的文章中介绍过多次了,在此不再赘述;

    上述在对“重复提交”的介绍中隐约也提及它所带来的的后果:

    (1)数据库DB出现多条一毛一样的数据记录;

    (2)如果重复发起的请求足够多、请求体容量足够大,很可能会给系统接口带来极大的压力,导致其出现“接口不稳定”、“DB负载过高”,严重点甚至可能会出现“系统宕机”的情况;

以上是关于c#如何从根本上防止重复提交相同的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何防止用户重复提交数据

在winform当中提交数据,如何防止重复提交?

php通过token验证表单重复提交

PHP避免刷新页面重复提交

kafka防止消息重复消费

PHP 怎么防止GET方式提交重复数据?