1,若是用于数据绑定,如gridview,因使用MoveNext方法读取数据,该方法在结束后调用DataReader.Close()方法,故会关闭datareader,是否关闭connection呢,要看执行时是否传了CloseConnection进去,若传了,则在DataReader.Close()关闭gridview的同时,会自动关闭connection
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
2,其它情况,因不能保证完全遍历完数据,所以最好要手工执行DataReader.Close()方法。