![](/img/trans.png)
[英]Need one Procedure from Ado.net Code Which Convert Ado.net Code to SQL Server Query
[英]Gracefully terminate long running SQL Server query from ADO.NET
我使用异步进程从长时间运行的SQL查询中检索数据。 该进程通过SqlCommand.BeginExecuteReader()
方法调用存储过程。
有时,我想关闭我的进程并优雅地终止任何正在运行的查询。
经过一些测试,似乎调用SqlConnection.Close()
就足够了。 为了更好地衡量,我还显式调用了SqlConnection.Dispose()
。
当通过SQL Server Profiler运行跟踪时,看起来好像结束了查询,因为我看到SQL:BatchStarting
后跟SQL:BatchCompleted
调用Close()
。
任何人都可以确认是否只需要关闭连接?
呼叫关闭就足够了,只需几句话:
首先确保在finally块中编写Close方法以确保正确的异常处理。
此外,您不需要同时调用SqlConnection.Close和SqlConnection.Dispose方法,因为它们都是相同的。 添加Dispose方法实现IDisposable模式,此方法在内部调用SqlConnection.Close方法,该方法具有更自然的名称,因为我们关闭连接,但不处理它们:)
如果您正在使用DataReader,那么每次想要将连接用于其他目的之后,您也必须关闭它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.