我正在编写一个 ASP.NET 应用程序。在我的数据层中,在查询之前和之后打开和关闭了一个 sql 连接。SqlConnection 被保存为单个类的私有字段。类中的每个数据库调用都使用相同的结构:
conn.Open();
try
{
// database querying here
}
finally
{
conn.Close();
}
但是,在极少数情况下,我会收到异常“连接未关闭。连接的当前状态为“打开”。无法重现该问题,因为它很少来自代码的不同部分。我的应用程序中涉及到一些线程,但新线程也产生了新的数据层类,从而产生了新的连接对象。
我不明白如何使用上面的代码让连接在打开时徘徊。是不是应该打开后总是关闭连接,使上述异常不可能发生?