在Asp.net中获取长期执行的SP的进度状态
本文关键字:SP 状态 执行 net Asp 获取 | 更新日期: 2023-09-27 18:13:06
我在SqlServer(2005+(中有SP
,它使用cursor
并做一些事情(在10000行上(
我需要一个类似进度条的东西(在我的c#网站中查看(。
我可以取10000除以100,这样它将每做1000条记录(使用sql print命令(:process of another 1000 is done !!!
但我想在我的asp.net网站上看到这张照片(每一张新的照片(。
如何获取打印命令/或者有更好的方法吗?
我们用来实现类似东西的过程稍微复杂一点,但它确实有效。
例如,我们创建了一个具有多种方法的Web服务;
[SoapDocumentMethod(OneWay = true), WebMethod]
public void StartUpdate(string reference)
[WebMethod]
public ProcessStatus GetProcessStatus(string reference)
对asynch-webmethod的调用将启动进程运行,并传递一个参考号来标识其自身。这反过来调用了一个存储过程,该过程使用游标迭代的更新来更新具有"引用"、"计数"answers"状态"的另一个表
然后,GetProcessStatus将传入此引用并传回当前计数和状态。如果状态已完成,我们可以继续,或者,您可以在此时使用"计数"来更新状态。这方面的一个例子;
protected void Page_Load(object sender, EventArgs e)
{
this.JavaScript.Text = string.Format("<script>setTimeout('"{0}'", {1});</script>",
this.Page.GetPostBackClientEvent(this.btnRefresh, ""), 3000);
ProcessStatus status= Class.GetProcessStatus(reference);
lblCount.Text = status.Count.ToString();
if (import.Status == (int)ProcessStatus.Status.Complete)
{
Globals.GoUrl("/Import/File/Map.aspx");
}
}
希望能有所帮助。