ADO.NET:ExecuteScalar会自动关闭连接吗?

时间:2010-07-12 14:47:20

标签: ado.net executescalar

ExecuteScalar会自动关闭连接吗?

3 个答案:

答案 0 :(得分:6)

不,您需要在使用ExecuteScalar()时显式打开和关闭连接。

答案 1 :(得分:5)

您可以使用扩展方法创建重载,但我不确定这是不是一个好主意。

public static object ExecuteScalar(this IDbCommand Command, bool CloseConnetion)
{

    (if Command == null)
        throw new NullReferenceException();

    object obj = null;

    try
    {
      obj = Command.ExecuteScalar();        
    }
    finally
    {
      if(CloseConnection && Command.Connection.State != ConnectionState.Closed)
        Command.Connection.Close();    
    }

    return obj;
}

答案 2 :(得分:3)

这取决于 可以编写IDbCommand的实现来关闭连接 但据我所知,提供的实现不会关闭连接。