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

解决方案 »

  1.   

    关闭连接的时候自动关闭DataReader对象,如果执行过程中,不需要建别的DataReader,方法的内部不用关闭连接。
      

  2.   

    方法的内部不用关闭SqlDataReader。如果方法内需再次使用,需要先关闭。
      

  3.   

    SqlDataReader  reader = command.ExecuteReader(CommandBehavior.CloseConnection);
    if(reader.Read())
    {
    }
    reader.Dispose();
      

  4.   

    按正常的 做法都是先关闭SqlDataReader 在关闭SqlConnection的
    不过你不关闭SqlDataReader直接关闭SqlConnection也没有问题SqlDataReader也直接跟着就关了。
      

  5.   

    没必要调用dr.Close();
    直接
    Using(Conn)
    {
      Conn.Open();
      ... ...
    }
    就OK
      

  6.   

    经验总结
    其实重要的是 把Connection关闭,因为连接是比较占用系统资源的
    Reader 关不关闭影响不大,你把Connection.close时,如果没有把reader关闭,reader有可能还会占用一些资源.所以还是按规范reader.close(),然后再connection.close(),以后你想在connection.close之前再添加代码也行,容易扩展。