刷新asp.net页面时会运行SSIS包

时间:2014-01-08 12:34:39

标签: c# asp.net

我有一个带有按钮的asp.net网页,当点击它时会调用2个存储过程,然后将SSIS包作为SQL代理作业运行,最后在页面上重新加载数据。这一切都很顺利。

我的问题是,如果使用浏览器刷新按钮刷新页面,它会再次执行按钮单击事件。

如何阻止这种情况发生?

由于 诺勒

1 个答案:

答案 0 :(得分:1)

制作两个单独的页面

  1. 其中包含按钮,单击该按钮会调用SP并将SSIS包作为SQL代理作业运行
  2. 哪个加载数据
  3. 然后

    • 在SQL Server代理作业完成后,从页面重定向到第2页1按钮单击。
    • 在第2页的页面加载事件中加载所需数据

    在第1页的ViewState上包含一个属性,就像这样。

    protected Boolean IsRequestAlreadyProcessed
    {
        get
        {
            return Convert.ToBoolean(this.ViewState["IsRequestAlreadyProcessed"]);
        }
        set
        {
            this.ViewState["IsRequestAlreadyProcessed"] = value;
        }
    }
    

    现在在您的第1页按钮点击事件中检查此属性。

    protected void yourButton_Click(Object sender, EventArgs e)
    {
        if (!this.IsRequestAlreadyProcessed)
        {
            this.IsRequestAlreadyProcessed = true;
            //Carry out all your SQL Agent Job operations here...
            Response.Redirect("~/ToYourPage2.aspx");
        }
    }