3

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

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

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

4

2 回答 2

6
ExecuteReader(CommandBehavior.CloseConnection)

close()当数据读取器调用它的方法时,这将关闭连接(当dispose()通过使用using块调用方法时发生这种情况。

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

于 2013-06-12T20:25:10.283 回答
5

不; 在您释放连接之前,连接不会关闭。

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

于 2013-06-12T20:24:03.043 回答