最近使用sqlhelper  之前的数据库连接和关闭都是手写的,今天打算用sqlhelper 发现一些datatable和dataset是自动关闭的,想问的是 使用返回的datareader 还用手动关闭么?还有 执行 没有返回值的操作 还有关闭数据库链接么?

解决方案 »

  1.   

    DataReader需要手动关闭,在一层DataReader看不出问题,当多层DataReader嵌套的时候就会报错。
    关闭释放资源是规范写法,养成一个良好的习惯,不要等着系统给你关闭,那样会占用系统内存资源。
      

  2.   

    datareader 首先你需先打开,然后才可以读取,当然,你用完后肯定是要关闭的close();
    注意:在你返回datareader 这个对象是,是不能先关闭,再返回的。如:
    datareader  dr=......
    dr.close();
    return dr;
    这样返回是不允许的;
      

  3.   

    看了下 sqlhelper  除去sqldatareader  其他都不用手动关闭,而使用reader时只需要这样写就自动关闭了。using(SqlDataReader ds = db.ExecuteReader("*****", param))  不知道我这样说对不对。