如何解决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方法。\”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。