2015-10-27 36 views
0

只是一个普遍的问题,如果我在我的程序中打开一个OleDbConnection,我应该在某个时候关闭它吗?我只问,因为我看过一些教程,其中演示者不包括关闭连接的语句。关闭一个OleDbConnection

在我的具体情况下,我打开一个连接来访问Excel文件,填充DataTable并获取一些值。然后,虽然我没有理由打开连接,但我认为如果我将其打开,可能会导致一些问题。

另外,说明conn.Close();足以关闭连接?

+1

你应该总是关闭连接。如果不仅仅是为了减少服务器的负载。如果你不再使用它,我会打电话给conn.Dispose。顺便说一句,曾听说过'使用'的声明? –

+1

是的,'conn.Close();'就足够了,但'using'语句更清晰,并且保​​证即使抛出异常也关闭连接。 –

+0

谢谢,我欣赏它! –

回答

4

是的,您应该尽快关闭连接。如果您在一种方法中使用连接,而不是在一次方法之后立即使用,请关闭并处理它,以便清理它。

您应该在using语句中创建连接,因为它甚至会在发生异常时关闭并处理连接。

using (OleDbConnection conn = new OleDbConnection(...)) 
{ 
    // use the connection inside here 
} 
+1

为什么downvote? –

+0

如果界面要求您处置它,请始终按照我的意见去做。 –

+0

谢谢,我很欣赏答案和解释。 –

5

您应该使用using块,以确保连接关闭并正确放置。

using (OleDbConnection connection = new OleDbConnection(connectionString)) 
{ 
    connection.Open(); 
    //Do some work 
}//The connection is automatically closed when the code exits the using block. 

进一步阅读here