datareader 和 connection 对象,是不是用完close()就能释放内存呀?
----------------------------------------------------
每次用完后,是不是必须要执行close(),另外,这一句能起到释放内存的作用吗?
好象在vb中,除了 close,还要 set conn=nothing 才能真正释放内存,不知c#中是如何要求的,是不是 close() 后,就可以不管它了。还有, command 对象,应该如何释放内存呢?
这个对象没有 close()方法呀,我不知用完之后如何处理它?

解决方案 »

  1.   

    关闭连接的时候自动关闭DataReader对象,
    如果执行过程中,不需要建别的DataReader,方法的内部不用关闭连接
    连接被close时,其实是放入了连接池内
      

  2.   

    不是这样的。close方法是关闭链接。C#里面的内存都是由垃圾回收器自动回收的。
      

  3.   

    conn.close(); 关闭数据库连接
      

  4.   

    可是 DataReader 对象本身,确实也有 close() 方法呀,
    这个close 的作用是什么,难道也是关闭连接。比如同时有多个 DataReader 对象,如果close()是指关闭连接的话,那么其一个DataReader执行 close()后,另外的几个 DataReader 对象的连接也跟着断了呀。所以,DataReader 对象自身的 close() 是做什么,我还是不解。
      

  5.   

    DataReader中有一个只向前移动的游标,close关闭和释放该游标.
      

  6.   

    这么说,是不是:
    只有连接对象需要手工用代码及时关闭。
    其他对象都不用管,系统会自动回收内存,是这样吗?比如 command对象,dataset 对象等,无须用代码释放内存。
      

  7.   

    获取DataReader时可以指定是否同步关闭Connection,一个connection同时只能有一个DataReader处于打开状态,如果你有多个sql语句使用同一个connection进行查询,那么在你使用下一个DataReader之前必须close前一个DataReader