【发布时间】:2012-01-29 00:26:08
【问题描述】:
我处于需要一个接一个地执行 sql 脚本的情况。仅当前一个脚本的返回值为 0 时才会执行下一个脚本。此外,我需要向我的 ASP.NET 页面提供脚本集合的状态,无论它是已完成、正在进行、取消还是错误。我正在尝试使用 PageAsyncTask 和 Threading 来完成此操作,但这些不会产生输出。欢迎任何建议。
编辑:
我使用放置日志条目的 sql 表填充网格视图。 条目在 gridview 中的处理方式不同,因此我在 gridview 的 RowDataBound 事件中管理它们。每个链接按钮都有一个方法。
protected void gvProgress_RowDataBound(对象发送者,GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { #region 控制分配 HtmlImage icon = (HtmlImage)e.Row.Cells[0].Controls[1];
Label scriptname = (Label)e.Row.Cells[0].Controls[3];
HiddenField status = (HiddenField)e.Row.Cells[0].Controls[5];
LinkButton details = (LinkButton)e.Row.Cells[4].Controls[1];
LinkButton pop = (LinkButton)e.Row.Cells[4].Controls[3];
LinkButton rerun = (LinkButton)e.Row.Cells[4].Controls[5];
LinkButton cancel = (LinkButton)e.Row.Cells[4].Controls[7];
LinkButton start = (LinkButton)e.Row.Cells[4].Controls[9];
#endregion
#region CONTROLS PREPARATION
switch (status.Value)
{
case "1": //Pending/Not Yet Started
icon.Src = "icons/pending.png";
details.Visible = false;
pop.Visible = false;
rerun.Visible = false;
cancel.Visible = false;
start.Visible = false;
break;
case "2": //In-Progress
icon.Src = "icons/on-going.gif";
details.Visible = false;
pop.Visible = false;
cancel.Visible = true;
rerun.Visible = false;
start.Visible = false;
break;
//did something similar for other statuses
}
}
}
【问题讨论】:
-
请显示一些来源...您尝试了什么?究竟是什么不工作?
-
然后我的方法在 gridviewrows 上循环获取脚本名称。如果脚本尚未启动,我将启动它,更新时间戳和状态,然后到达方法的结尾。重定向到同一页面,再次调用该方法。