对于返回 DbDataReader 的 SqlHelper 方法,我们一直是反对的。因为使用者很容易就忘记(甚至根本不懂)需要及时通过它关闭所占用的数据库逻辑连接。而不及时释放逻辑连接,那么数据库连接池就会很快用尽。所以好的 SqlHelper 返回的是查询对象集合,例如 List<T> 类型的,一旦你取出数据集合,那么数据库逻辑连接立刻就关闭了。及时关闭数据库连接,才能保证数据库连接池不会用尽。