c#连接数据库

时间:2010-11-21 14:23:01

标签: c# sqlconnection

我想知道维护数据库连接(System.Data.SqlClient.SqlConnection())是否打开是一个好主意,还是建议在使用后关闭连接并在需要时再次打开它? (注意:我的应用程序将持续运行数天/数月)。我有点想把它打开。哪种解决方案更好?

3 个答案:

答案 0 :(得分:3)

一般情况下,在完成后将其丢弃,不要担心。

默认情况下,ADO.NET实现connection pooling,因此连接在后台保持打开状态,以免您在任何时候打开新连接的性能损失。

关闭代码中连接的另一个原因 - 如果在不使用连接时丢失了与数据库服务器的连接,则不会遇到错误,如果保持连接打开,则可能会发生错误。< / p>

答案 1 :(得分:1)

您绝对应该尽可能晚地打开您的连接,并尽快关闭它们。

不仅应该在完成后关闭它们:如果在其间运行任何其他代码,即使在密切相关的命令之间也应关闭它们。实际上,让我这样说:尽可能快地和频繁地关闭ADO.NET Connection对象。 (也就是说,不要做明显愚蠢的事情来关闭显然不应该关闭的连接)

默认情况下,SQL Server的ADO.NET提供程序(以及大多数其他主要提供程序)提供连接池。这实际上将为您管理这些连接的创建和销毁 - 但前提是您在完成后关闭它们。

如果在using块中包装创建和使用连接对象,这很容易做到......

using(SqlConnection conn = new SqlConnection(...))
{
   ///Open and use the connection
} //the 'using' causes it to automatically be closed.

答案 2 :(得分:0)

如果需要,打开连接,不要浪费资源; - )