gpt4 book ai didi

c# - 在 Asp.net 中获取长时间执行的 SP 的进度状态?

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:37 25 4
gpt4 key购买 nike

我在 SqlServer (2005+) 中有 SP,它使用 cursor 并做一些事情(在 10,000 行上)

我需要进度条之类的东西(以便在我的 C# 网站 中看到。)。

我可以将 10,000 除以 100,这样每 1000 条记录它都会执行(使用 sql 打印命令):另外 1000 条的处理已完成!!!

但我想在我的 asp.net 网站上捕捉那个打印品(每个 new 打印品)。

我怎样才能捕捉到打印命令/或者有更好的方法吗?

最佳答案

我们用来实现类似功能的过程稍微复杂一些,但它确实有效。

例如,我们创建了一个具有多种方法的网络服务;

[SoapDocumentMethod(OneWay = true), WebMethod]
public void StartUpdate(string reference)

[WebMethod]
public ProcessStatus GetProcessStatus(string reference)

调用异步 web 方法将启动进程运行并传入一个引用号以标识自己。这又调用了一个存储过程,它使用游标迭代的更新来更新另一个表的“引用”、“计数”和“状态”

然后 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");
}
}

希望对您有所帮助。

关于c# - 在 Asp.net 中获取长时间执行的 SP 的进度状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7993893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com