• .NET防止重复提交数据


    最近在做一个销售系统的时候,操作人员提交数据的时候数据库竟然会出现多条数据相同的记录,并且是在1秒之内,客户反馈给我们,第一反应是重复提交的问题,检查了下代码,程序执行完成后应该是跳转到别的页面的,可为什么执行了第一次后没有跳转呢? 并且系统的提交按钮提交后 会confirm 确认 后 disabled=“true”的,难道是confirm验证没有执行? 由于不能和客户直接沟通,也不得而知,但是在以后编写程序时要注意重复提交的问题,有如下方法

    1.页面第一次加载到时候生成一个令牌, 提交数据的时候检测令牌状态 在程序执行完以后将令牌清空

      protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ViewState["istj"] = "0";
            }

            if (ViewState["istj"] != null)
            {

                Response.Write(ViewState["istj"].ToString());
            }
            else
            {
                Response.Write("为null");
            }
        }
     
        protected void Button2_Click(object sender, EventArgs e)
        {

     //执行程序
            ViewState["istj"] = null;
        }

    2.第一次加载页面的时候生成数据库唯一标识

     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ViewState["istj"] =  DateTime.Now.ToString("yyyyMMddhhmmss") + "唯一标识";

            //或者 label.text= DateTime.Now.ToString("yyyyMMddhhmmss") + "唯一标识";
            }

            if (ViewState["istj"] != null)
            {

                Response.Write(ViewState["istj"].ToString());
            }
            else
            {
                Response.Write("为null");
            }
        }
     
        protected void Button2_Click(object sender, EventArgs e)
        { //执行程序

         //首先检测 是否重复提交

        //检测该唯一标识数据库里是否存在
            ViewState["istj"] = null;//销毁标识

       
        }

    注:按钮提交后必须要disabled="true";在客户端防止再次提交

  • 相关阅读:
    RobotFramework 安装配置(一)
    JAVA练手--集合
    JAVA文件操作
    线性布局--LinearLayout
    android studio导入android studio工程
    通过开机广播(broadcast)通知应用
    Android studio应用导入源码错误This attribute must be localized
    android studio的jni和so
    上传漏洞总结-UPLOAD-LABS
    靶机渗透测试实战(一)——熟悉渗透测试流程的简单测试
  • 原文地址:https://www.cnblogs.com/tiancai/p/3534655.html
Copyright © 2020-2023  润新知