当应用程序关闭时,SqlConnection是否会自动关闭?

9

我在一个单独的线程中查询数据库。

如果我在查询正在执行时关闭应用程序,SqlConnection会自动关闭还是保持打开状态?

3个回答

9

如果进程被终止,所有的操作系统资源,包括网络连接,都将被释放。换句话说,这是可以接受的。


@JoelCoehoorn:这绝对不是一个避免及时关闭连接等行为的借口。但如果你的应用程序在执行某些“合理”的操作时崩溃,那么就没有必要担心了。当然,如果在编写新数据文件的过程中死机,那就稍微难以应对一些(尽管当然是可以做到的)。 - Jon Skeet
因为我在某些情况下看到应用程序已关闭,但当您查询 SQL Server 以查看活动连接时,仍会显示这些连接。 - user143887
@Vanilla:网络连接可能处于等待时间或类似状态,但我希望它们能够相对较快地断开。您使用什么类型的连接访问数据库? - Jon Skeet
@Vanilla:不,我是指哪种网络传输方式——TCP/IP、命名管道等。这可能会影响资源清理的速度。 - Jon Skeet

0

如果应用程序结束,连接将关闭,以及所有其他已打开的内容。


0

SqlConnection是一个可处理的对象。通常最好的做法是Dispose()实现IDisposable接口的对象。我还注意到SqlConnection对象有一个Close()方法。你也应该调用它吗?嗯,我找到了这篇文章,里面有更多关于这个问题的信息:

SqlConnection:关闭还是处理?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接