我继承的典型查询执行模式是这样的:
using (IDataReader r = query.ExecuteReader())
{
while (r.Read())
{
// etc.
}
}
退出query.Connection
块后,using
是否保持打开状态?
答案 0 :(得分:6)
ExecuteReader(CommandBehavior.CloseConnection)
这将在datareader调用close()
方法时关闭连接(当通过使用dispose()
块调用using
方法时会发生这种情况。
理想情况下,您也可以在using
对象中使用SqlConnection
块(或在dispose()
块内手动调用finally
),而不仅仅是关闭连接,还要释放资源。
答案 1 :(得分:4)
没有;在您处理连接之前,连接不会关闭。
但是,如果您通过CommandBehavior.CloseConnection
,则会关闭连接。