gpt4 book ai didi

sql - SqlCommand.ExecuteNonQuery 是否会等到存储过程完成?

转载 作者:行者123 更新时间:2023-12-03 02:30:39 25 4
gpt4 key购买 nike

我正在开发一个用 VB.NET 构建的 Windows 桌面应用程序,该应用程序与基于 Web 的数据库 (Microsoft SQL Server 2012) 交互。它在需要时连接到数据库并在本地执行一些计算。现在,有一个从该 Windows 应用程序执行存储过程的新要求。我需要知道当我调用 SqlCommand.ExecuteNonQuery 时,SqlCommand 是立即释放还是等到存储过程完成所有工作?我现在无法测试,因为存储过程尚未设计,并且至少需要 2 分钟才能完成。我在与 UI 不同的线程上运行 SqlCommand.ExecuteNonQuery。

关注 SqlCommand 是否未立即释放:1. 如果用户在完成之前退出应用程序,存储过程会完成工作吗?2. 如果超时,存储过程是否会完成?

抱歉,如果我的疑问本质上是基本的,我是新手。

最佳答案

是的,ExecuteNonQuery 将等待,直到 SP 完成或出现错误。

如果您从另一个线程运行 ExecuteNonQuery,则只有该线程在等待。其他线程则不然,因此用户可以关闭应用程序。如果您在关闭之前清理线程(您应该这样做),它将向 SP 发送取消消息。 (这并不意味着它实际上会取消。如果它几乎完成,它可能会完成。)然后会发生什么取决于您的 SQL 开发人员。如果他们在事务内运行 SP,他们应该回滚更改并返回错误。如果没有,请聘请新的 SQL 开发人员。

关于sql - SqlCommand.ExecuteNonQuery 是否会等到存储过程完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22796080/

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