zoukankan      html  css  js  c++  java
  • 关于DataReader使用的问题


     using (IDataReader reader = ExecuteReader(cmd)) {
                    
    int index = 0;
                    
    while (reader.Read()) {
                        
    if (index >= region.Start) {
                            item 
    = new T();
                            item.LoadData(reader);
                            items.Add(item);
                            
    if (items.Count == region.Size)
                            {
                                
    break;
                            }
                        }
                        index
    ++;
                    }
                }

    以上代码看上去似乎没什么问题,事实存在的问题是比较严重的。按道理break后紧接就是reader的关闭和释放,但在SqlDataReader确是把所有记录都read以后才会关闭和释放。正确的做法应该在break前调用Command.Cancel()方法取消继续执行。

  • 相关阅读:
    小程序开发之初体验
    phantomjs 爬去动态页面
    css实现三角形
    多种方式实现千位分隔符
    基于浏览器的人脸识别标记
    Axios源码阅读笔记#1 默认配置项
    基于图形检测API(shape detection API)的人脸检测
    页面性能优化
    目标
    HelloWorld!
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/1449044.html
Copyright © 2011-2022 走看看