阅读器关闭时 read的尝试无效。
最近碰到一个问题,就是在多层架构中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的尝试无效。相关推荐
- 阅读器关闭时Read的尝试无效
错误原因: 在方法中关闭了连接,datareader特点是必须是基于打开连接的,一旦你的connection一close就什么也取不到了,所以datareader不能用,所以在项目中最好不要将data ...
- 阅读器关闭时尝试调用Read无效时的解决方法
今天在写asp .netmvc的项目时,发现了个困扰我很久的问题,经过仔细研究终于解决了. 问题如下: 首先来看一下原来有问题的代码: public static SqlDataReader Excu ...
- 使用ExecuteReader时报错“阅读器关闭时尝试调用Read无效”的解决办法
出现如下绿色字体出错的问题,是由于using使用过后数据库会自动关闭,出了using的作用域后,在调用的时候无法找到信息 form1.cs public static SqlDataReader Ex ...
- Adobe Reader阅读器打开时显示上次看到的页面
Adobe Reader阅读器打开时显示上次看到的页面 编辑-->首选项-->启动-->第二项(重新打开文档到上次启动的页面)中选择"所有文件" 即可!~ 转载于 ...
- Web阅读器开发系列教程(入门篇)
作者:Sam 前言 最近我在慕课网发布了两门关于Web阅读应用开发的课程,采用Vue全家桶开发.免费课是入门级课程,初步实现了一个阅读器.实战课是进阶课程,实现了一个高性能的互联网阅读应用.两个项目都 ...
- python通讯卡_如何使用树莓派连接EM-18RFID阅读器模块 并通过Python脚本从一些RFID卡访问信息...
概述 RFID或射频识别是一种通过电磁波进行通信的方式(射频波,具体而言). RFID标签和RFID卡通常用于身份验证和访问控制. 您可能已经看到人们在办公室入口处刷身份证.身份证实际上是具有雇员个人 ...
- 【java文本处理】实现一个简单的小说文本阅读器(分页、翻页、页码跳转)
一.目的 读出文本(.txt)内容显示至dos命令窗: 按规定行数将文本进行分页: 在dos下实现文本翻页.页码跳转等功能,形成简单小说阅读器. 二.主要方法 1. RandomAccessFile类 ...
- 文件打开不关闭程序会输出吗_干货!很多资深用户都不知道的10个BOOX阅读器使用技巧,很实用!...
近期我们在公众号后台.知乎.贴吧等平台,都收到了很多用户的关于阅读器使用上的一些问题咨询,比如如何设置屏保.如何安装字体.如何自定义笔记模板.如何去除PDF水印等. 今天,我们挑了10个大家最常咨询的 ...
- 极速pdf文件打印时此计算机未连接到网络,极速PDF阅读器常见问题及解决方法
原标题:极速PDF阅读器常见问题及解决方法 极速PDF阅读器是日常办公常用的一款PDF阅读软件,有些人在使用过程中难免遇到一些问题不知道如何解决.下面汇总了几个常见问题并附解决方案,希望能够帮助到你. ...
最新文章
- Spring Data JPA 从入门到精通~Specification工作中的一些扩展
- php异步处理任务工具,PHP实现异步任务分发处理利器-Gearman
- linux sed面试题,【2021最新版】Linux面试题总结(48道题含答案解析)
- pytorch 中的数据类型,tensor的创建
- vue路由异步组件案例
- c#用控制台程序安装启动停止卸载服务
- 团队-手机备忘录-需求分析
- python 多态 锁_python 上下文管理器,多态,数据锁定与自省,
- 字符串大写字符串转小写js_C ++字符串大写和小写
- 【Tricks】半监督深度学习训练和实现小Tricks
- Modbus通讯协议学习 - 认识篇
- 网页API分析之淘宝抢购秒杀原理(订单数据获取简单分析)
- 字面量long后面的大小写l
- android killer java_android killer无法查看java源代码的解决方法
- 【定时同步系列5】Farrow内插器结构原理和MATLAB实现
- Simulink选择器模块(Selector)
- 【建立个人品牌】自媒体人必须知道的28个新媒体平台
- 华为AppEngine学习
- 正常情况下如何卸载计算机软件?
- 安装完IIS localhost打不开