最近碰到一个问题,就是在多层架构中datareader传递的问题。

结果发现总是报“阅读器关闭时 read的尝试无效。”,在网上查了两天,因为大多数代码都不涉及datareader传递的问题,我一度认为datareader不能够传递。我是调用了sqlhelper中的代码,所以开始一直没有怀疑过底层代码有什么问题。原来的代码如下:

public static DbDataReader ExecuteReader(string sql)
        {
            using (DbConnection conn = GetConncetion())
            {
                DbCommand cmd = GetCommand(conn);
                DbDataReader myReader;
                try
                {
                    conn.Open();
                    SetCommand(cmd, sql, CommandType.Text, COMMANDTIME, null);
                    myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    return myReader;
                }
                catch (DbException ex)
                {
                    throw new Exception(ex.Message);
                }

finally
                {
                    cmd.Dispose();
                    conn.Close();
                }
            }
        }

终于今天查到一个帖子,见我的网摘。才发现原来是using的问题。而且finally会在自动关闭conn,而不管reader是否传递。后来我把代码改成如下,终于运行通过了!

public static DbDataReader ExecuteReader(string sql)
        {
            //using (DbConnection conn = GetConncetion())
            //{
            DbConnection conn = GetConncetion();
            DbCommand cmd = GetCommand(conn);
            DbDataReader myReader;
            try
            {
                conn.Open();
                SetCommand(cmd, sql, CommandType.Text, COMMANDTIME, null);
                myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                return myReader;
            }
            catch (DbException ex)
            {
                throw new Exception(ex.Message);
            }

//    finally
            //    {
            //        cmd.Dispose();
            //        conn.Close();
            //    }
            //}
        }

阅读器关闭时 read的尝试无效。相关推荐

  1. 阅读器关闭时Read的尝试无效

    错误原因: 在方法中关闭了连接,datareader特点是必须是基于打开连接的,一旦你的connection一close就什么也取不到了,所以datareader不能用,所以在项目中最好不要将data ...

  2. 阅读器关闭时尝试调用Read无效时的解决方法

    今天在写asp .netmvc的项目时,发现了个困扰我很久的问题,经过仔细研究终于解决了. 问题如下: 首先来看一下原来有问题的代码: public static SqlDataReader Excu ...

  3. 使用ExecuteReader时报错“阅读器关闭时尝试调用Read无效”的解决办法

    出现如下绿色字体出错的问题,是由于using使用过后数据库会自动关闭,出了using的作用域后,在调用的时候无法找到信息 form1.cs public static SqlDataReader Ex ...

  4. Adobe Reader阅读器打开时显示上次看到的页面

    Adobe Reader阅读器打开时显示上次看到的页面 编辑-->首选项-->启动-->第二项(重新打开文档到上次启动的页面)中选择"所有文件" 即可!~ 转载于 ...

  5. Web阅读器开发系列教程(入门篇)

    作者:Sam 前言 最近我在慕课网发布了两门关于Web阅读应用开发的课程,采用Vue全家桶开发.免费课是入门级课程,初步实现了一个阅读器.实战课是进阶课程,实现了一个高性能的互联网阅读应用.两个项目都 ...

  6. python通讯卡_如何使用树莓派连接EM-18RFID阅读器模块 并通过Python脚本从一些RFID卡访问信息...

    概述 RFID或射频识别是一种通过电磁波进行通信的方式(射频波,具体而言). RFID标签和RFID卡通常用于身份验证和访问控制. 您可能已经看到人们在办公室入口处刷身份证.身份证实际上是具有雇员个人 ...

  7. 【java文本处理】实现一个简单的小说文本阅读器(分页、翻页、页码跳转)

    一.目的 读出文本(.txt)内容显示至dos命令窗: 按规定行数将文本进行分页: 在dos下实现文本翻页.页码跳转等功能,形成简单小说阅读器. 二.主要方法 1. RandomAccessFile类 ...

  8. 文件打开不关闭程序会输出吗_干货!很多资深用户都不知道的10个BOOX阅读器使用技巧,很实用!...

    近期我们在公众号后台.知乎.贴吧等平台,都收到了很多用户的关于阅读器使用上的一些问题咨询,比如如何设置屏保.如何安装字体.如何自定义笔记模板.如何去除PDF水印等. 今天,我们挑了10个大家最常咨询的 ...

  9. 极速pdf文件打印时此计算机未连接到网络,极速PDF阅读器常见问题及解决方法

    原标题:极速PDF阅读器常见问题及解决方法 极速PDF阅读器是日常办公常用的一款PDF阅读软件,有些人在使用过程中难免遇到一些问题不知道如何解决.下面汇总了几个常见问题并附解决方案,希望能够帮助到你. ...

最新文章

  1. Spring Data JPA 从入门到精通~Specification工作中的一些扩展
  2. php异步处理任务工具,PHP实现异步任务分发处理利器-Gearman
  3. linux sed面试题,【2021最新版】Linux面试题总结(48道题含答案解析)
  4. pytorch 中的数据类型,tensor的创建
  5. vue路由异步组件案例
  6. c#用控制台程序安装启动停止卸载服务
  7. 团队-手机备忘录-需求分析
  8. python 多态 锁_python 上下文管理器,多态,数据锁定与自省,
  9. 字符串大写字符串转小写js_C ++字符串大写和小写
  10. 【Tricks】半监督深度学习训练和实现小Tricks
  11. Modbus通讯协议学习 - 认识篇
  12. 网页API分析之淘宝抢购秒杀原理(订单数据获取简单分析)
  13. 字面量long后面的大小写l
  14. android killer java_android killer无法查看java源代码的解决方法
  15. 【定时同步系列5】Farrow内插器结构原理和MATLAB实现
  16. Simulink选择器模块(Selector)
  17. 【建立个人品牌】自媒体人必须知道的28个新媒体平台
  18. 华为AppEngine学习
  19. 正常情况下如何卸载计算机软件?
  20. 安装完IIS localhost打不开

热门文章

  1. mosh:一个基于 SSH 用于连接远程 Unix/Linux 系统的工具
  2. C++ 课本习题(程序设计题)
  3. 软件定义网络SDN(特点、实现途径与展望)
  4. 前端学习辑录(1):js继承总结
  5. 云技术交流群一周只是汇总01
  6. 股票数据接口可以获取股价复权数据吗?
  7. WordPress代码:给网站添加外链go跳转效果
  8. JZOJ 4826. 【NOIP2016提高A组集训第2场10.30】小澳的葫芦
  9. 郑州python编程_郑州python班
  10. shell 除法显示小数