如何关闭Microsoft.Practices.EnterpriseLibrary.Data.ExecuteNonQuery的连接

Gab*_*boy 3 c# sql-server enterprise-library

我正在使用库microsoft.practices.enterpriselibrary访问SQL Server数据库。我想知道使用ExecuteNonQuery方法时如何关闭连接?

即:

using Microsoft.Practices.EnterpriseLibrary.Data.Sql;

SqlDatabase db = null;
try
{
    db = new SqlDatabase(stringConnection);
    db.ExecuteNonQuery("storedprocedure", someParams);
}
catch (Exception ex)
{
}
Run Code Online (Sandbox Code Playgroud)

我不能做这样的事情

finally
{
    if (db != null)
    {
        ((IDisposable)db).Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

那么...如何避免连接泄漏?

谢谢。

Ton*_* Li 5

您可以将代码放入“ using”块中。这样可以确保连接在完成后关闭。

using Microsoft.Practices.EnterpriseLibrary.Data.Sql;

SqlDatabase db = new SqlDatabase(stringConnection);
using (DbConnection con = db.CreateConnection())
{
    db.ExecuteNonQuery("storedprocedure", someParams);
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用con.Close()。


Tus*_*are 5

通常您无需担心关闭连接,因为数据访问块可以更有效地管理连接。检查以下链接中的“管理连接”部分:http : //msdn.microsoft.com/en-us/library/ff953187(v=pandp.50).aspx