IDataReader.Dispose()会关闭连接吗?

时间:2013-06-12 20:23:10

标签: .net dispose idatareader

我继承的典型查询执行模式是这样的:

using (IDataReader r = query.ExecuteReader())
{
  while (r.Read())
  {
    // etc.
  }
}

退出query.Connection块后,using是否保持打开状态?

2 个答案:

答案 0 :(得分:6)

ExecuteReader(CommandBehavior.CloseConnection)

这将在datareader调用close()方法时关闭连接(当通过使用dispose()块调用using方法时会发生这种情况。

理想情况下,您也可以在using对象中使用SqlConnection块(或在dispose()块内手动调用finally),而不仅仅是关闭连接,还要释放资源。

答案 1 :(得分:4)

没有;在您处理连接之前,连接不会关闭。

但是,如果您通过CommandBehavior.CloseConnection,则会关闭连接。

相关问题