【发布时间】:2020-03-15 13:51:24
【问题描述】:
我有这个关于制作图书馆系统的教程,但是代码就像打开连接,然后在一些代码和命令之后它以 Close(); 结束。方法是否真的需要关闭连接然后在有新功能时再次打开它?
例如,在登录按钮中,这段代码以 connnection.open(); 开头并以 connection.close() 结尾;然后在 Search Button 中还有这个 Open 和 Close 方法....
真的有必要关闭连接吗?为什么不让它打开然后在程序终止时关闭它?
【问题讨论】:
-
SQL 连接在打开时表示与数据库的连接。连接类实现了
IDisposable,这意味着您应该在使用完它们后调用Dispose(或者,最好还是在using语句的上下文中使用它们)。但是,它们并不是真正的数据库连接,它们是数据库连接外观。当您关闭(或处置)它们时,关联的连接将返回到池中。当你创建一个新的时,如果池中有一个匹配的,它就会被使用。所以,是的,创建、打开、使用和快速处理您的连接 -
对于问题的最后一部分:进程终止将导致连接被操作系统关闭。服务器会注意到这一点并自行关闭连接。但是,建议勤奋并以可控的方式妥善关闭资源。这确保了一个有效的程序不会耗尽资源,无论它运行多长时间。