在类A中使用SqlCommand.ExcuteReader()返回一个SqlDataReader对象,此类中未关闭connection连接在类B中输出DataReader中的信息完毕后关闭DataReader.Close();此时还要关闭Connection连接吗?
如何关闭

解决方案 »

  1.   

    需要关闭,可以在A类中执行ExcuteReader(CommandBehavior.CloseConnection)获得阅读器,CloseConnection枚举值表示在执行该命令时,如果关闭关联的 DataReader 对象,则关联的 Connection 对象也将关闭。 
      

  2.   

    我是新手,请问一下,为什么不能直接用close方法进行关闭呢?
      

  3.   


    不论SqlDataReader是否执行Close,目的都是要确保SqlConnection能够执行Close。换句话说,假设你知道调用了SqlConnection的Close,那么根本用不着去管什么SqlDataReader的Close是否被调用的问题。或者说,虽然你调用了SqlDataReader的Close,但是你知道它会间接调用SqlConnection的Close吗?如果不知道,你就是稀里糊涂地在盲目调用Close。