当前位置: 代码迷 >> ASP.NET >> SqlDataReader有没有必要写两个close?解决方法
  详细解决方案

SqlDataReader有没有必要写两个close?解决方法

热度:1255   发布时间:2013-02-25 00:00:00.0
SqlDataReader有没有必要写两个close?
conn1 f = new conn1();
SqlDataReader da = f.datareader(sql)

da.Close();
f.close();

datareader是自己写的一个conn1类里面的方法,里面也有一个close方法。有没有必要da.Close();

------解决方案--------------------------------------------------------
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
if(reader.Read())
{
}
reader.Dispose();
------解决方案--------------------------------------------------------
按正常的 做法都是先关闭SqlDataReader 在关闭SqlConnection的
不过你不关闭SqlDataReader直接关闭SqlConnection也没有问题SqlDataReader也直接跟着就关了。
------解决方案--------------------------------------------------------
经验总结
其实重要的是 把Connection关闭,因为连接是比较占用系统资源的
Reader 关不关闭影响不大,你把Connection.close时,如果没有把reader关闭,reader有可能还会占用一些资源.所以还是按规范reader.close(),然后再connection.close(),以后你想在connection.close之前再添加代码也行,容易扩展。
  相关解决方案