C#SqlDataReader关闭方法

| 以下哪种方法最适合关闭SqlDataReader:
 SqlDataReader reader = comm.ExecuteReader();

 while (reader.Read())
 {
 }
 reader.Close();
 reader.Dispose();
要么
SqlDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection);
while (reader.Read())
{
}
还是还有其他关闭方法?     
已邀请:
        正确的处理方法是
using
语句:
using(SqlDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection)) {
    while (reader.Read())
    { 

    }
}
这样,对象就可以正确处理了(您不需要调用
Close()
)。     
        根据我的经验,在这种情况下,ѭ2陈述是最佳实践。即使内部发生异常,也可以确保正确关闭连接。
using (SqlDataReader reader = comm.ExecuteReader())
{
    while (reader.Read())
    {
        //Do stuff...
    }
}
当然,您可以对
try { } finally { }
执行相同的操作,这是
using
语句在内部执行的操作。我发现,养成始终通过
using
语句处理读取器以避免连接泄漏的可能性的习惯是一个好主意。     
        如果在一种方法中使用读取器,则使用第一种情况;如果将读取器作为返回值(不在一个范围内)使用,则使用第二种情况。     
        您需要的文档就是以下文档:http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldatareader.close.aspx 引用:\“当您使用SqlDataReader将关联的SqlConnection用于任何其他目的时,必须显式调用Close方法。\”     

要回复问题请先登录注册